From: Christian Krafft When booting a NUMA system with nodes that have no memory (eg by limiting memory), bootmem_alloc_core tried to find pages in an uninitialized bootmem_map. This caused a null pointer access. This fix adds a check, so that NULL is returned. That will enable the caller (bootmem_alloc_nopanic) to alloc memory on other without a panic. Signed-off-by: Christian Krafft Cc: Christoph Lameter Cc: Andy Whitcroft Cc: Martin Bligh Signed-off-by: Andrew Morton --- mm/bootmem.c | 4 ++++ 1 file changed, 4 insertions(+) diff -puN mm/bootmem.c~enables-booting-a-numa-system-where-some-nodes-have-no mm/bootmem.c --- a/mm/bootmem.c~enables-booting-a-numa-system-where-some-nodes-have-no +++ a/mm/bootmem.c @@ -196,6 +196,10 @@ __alloc_bootmem_core(struct bootmem_data if (limit && bdata->node_boot_start >= limit) return NULL; + /* on nodes without memory - bootmem_map is NULL */ + if (!bdata->node_bootmem_map) + return NULL; + end_pfn = bdata->node_low_pfn; limit = PFN_DOWN(limit); if (limit && end_pfn > limit) _