lkml.org 
[lkml]   [2019]   [Jan]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH v2 19/21] treewide: add checks for the return value of memblock_alloc*()
    From
    Date


    Le 21/01/2019 à 09:04, Mike Rapoport a écrit :
    > Add check for the return value of memblock_alloc*() functions and call
    > panic() in case of error.
    > The panic message repeats the one used by panicing memblock allocators with
    > adjustment of parameters to include only relevant ones.
    >
    > The replacement was mostly automated with semantic patches like the one
    > below with manual massaging of format strings.
    >
    > @@
    > expression ptr, size, align;
    > @@
    > ptr = memblock_alloc(size, align);
    > + if (!ptr)
    > + panic("%s: Failed to allocate %lu bytes align=0x%lx\n", __func__,
    > size, align);
    >
    > Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
    > Reviewed-by: Guo Ren <ren_guo@c-sky.com> # c-sky
    > Acked-by: Paul Burton <paul.burton@mips.com> # MIPS
    > Acked-by: Heiko Carstens <heiko.carstens@de.ibm.com> # s390
    > Reviewed-by: Juergen Gross <jgross@suse.com> # Xen
    > ---

    [...]

    > diff --git a/mm/sparse.c b/mm/sparse.c
    > index 7ea5dc6..ad94242 100644
    > --- a/mm/sparse.c
    > +++ b/mm/sparse.c

    [...]

    > @@ -425,6 +436,10 @@ static void __init sparse_buffer_init(unsigned long size, int nid)
    > memblock_alloc_try_nid_raw(size, PAGE_SIZE,
    > __pa(MAX_DMA_ADDRESS),
    > MEMBLOCK_ALLOC_ACCESSIBLE, nid);
    > + if (!sparsemap_buf)
    > + panic("%s: Failed to allocate %lu bytes align=0x%lx nid=%d from=%lx\n",
    > + __func__, size, PAGE_SIZE, nid, __pa(MAX_DMA_ADDRESS));
    > +

    memblock_alloc_try_nid_raw() does not panic (help explicitly says: Does
    not zero allocated memory, does not panic if request cannot be satisfied.).

    Stephen Rothwell reports a boot failure due to this change.

    Christophe

    > sparsemap_buf_end = sparsemap_buf + size;
    > }
    >
    >

    \
     
     \ /
      Last update: 2019-01-31 07:09    [W:4.327 / U:0.024 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site