aboutsummaryrefslogtreecommitdiffstats
path: root/mm
diff options
context:
space:
mode:
authorJohannes Weiner <hannes@cmpxchg.org>2012-05-29 18:06:35 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-05-29 19:22:22 -0400
commit2c478eae96501163c5c5d5f682bba4d34a7ea1d4 (patch)
tree0c42430aa1b4209df62b34662343f32febf2cd36 /mm
parent421456edd27cf512b8f0025245a0f3572bd69b00 (diff)
mm: nobootmem: panic on node-specific allocation failure
__alloc_bootmem_node and __alloc_bootmem_low_node documentation claims the functions panic on allocation failure. Do it. Signed-off-by: Johannes Weiner <hannes@cmpxchg.org> Acked-by: Yinghai Lu <yinghai@kernel.org> Acked-by: Tejun Heo <tj@kernel.org> Acked-by: David S. Miller <davem@davemloft.net> Cc: Gavin Shan <shangw@linux.vnet.ibm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm')
-rw-r--r--mm/nobootmem.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/mm/nobootmem.c b/mm/nobootmem.c
index 1983fb1c7026..cca76207e61a 100644
--- a/mm/nobootmem.c
+++ b/mm/nobootmem.c
@@ -305,11 +305,17 @@ again:
305 305
306 ptr = __alloc_memory_core_early(MAX_NUMNODES, size, align, 306 ptr = __alloc_memory_core_early(MAX_NUMNODES, size, align,
307 goal, -1ULL); 307 goal, -1ULL);
308 if (!ptr && goal) { 308 if (ptr)
309 return ptr;
310
311 if (goal) {
309 goal = 0; 312 goal = 0;
310 goto again; 313 goto again;
311 } 314 }
312 return ptr; 315
316 printk(KERN_ALERT "bootmem alloc of %lu bytes failed!\n", size);
317 panic("Out of memory");
318 return NULL;
313} 319}
314 320
315void * __init __alloc_bootmem_node_high(pg_data_t *pgdat, unsigned long size, 321void * __init __alloc_bootmem_node_high(pg_data_t *pgdat, unsigned long size,
@@ -407,6 +413,12 @@ void * __init __alloc_bootmem_low_node(pg_data_t *pgdat, unsigned long size,
407 if (ptr) 413 if (ptr)
408 return ptr; 414 return ptr;
409 415
410 return __alloc_memory_core_early(MAX_NUMNODES, size, align, 416 ptr = __alloc_memory_core_early(MAX_NUMNODES, size, align,
411 goal, ARCH_LOW_ADDRESS_LIMIT); 417 goal, ARCH_LOW_ADDRESS_LIMIT);
418 if (ptr)
419 return ptr;
420
421 printk(KERN_ALERT "bootmem alloc of %lu bytes failed!\n", size);
422 panic("Out of memory");
423 return NULL;
412} 424}