summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Blanchard <anton@samba.org>2004-06-26 20:53:37 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2004-06-26 20:53:37 -0700
commite2dcfb355e776f2bd2bd64b3e04cd1dd8d668aa9 (patch)
tree52a7862b91d96d7010ccf7bce55ee37967aa916b
parent7518f92d71e5c95d254cc04cb30cebbde6d783ea (diff)
[PATCH] __alloc_bootmem_node should not panic when it fails
__alloc_bootmem_node currently panics if it cant satisfy an allocation for a particular node. Thats rather antisocial, we should at the very least return NULL and allow the caller to proceed (eg try another node). A quick look at alloc_bootmem_node usage suggests we should fall back to allocating from other nodes if it fails (as arch/alpha/kernel/pci_iommu.c and arch/x86_64/kernel/setup64.c do). The following patch does that. We fall back to the regular __alloc_bootmem when __alloc_bootmem_node fails, which means all other nodes are checked for available memory. Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--mm/bootmem.c7
1 files changed, 1 insertions, 6 deletions
diff --git a/mm/bootmem.c b/mm/bootmem.c
index 052dfeac0769..00f4661e174b 100644
--- a/mm/bootmem.c
+++ b/mm/bootmem.c
@@ -371,11 +371,6 @@ void * __init __alloc_bootmem_node (pg_data_t *pgdat, unsigned long size, unsign
if (ptr)
return (ptr);
- /*
- * Whoops, we cannot satisfy the allocation request.
- */
- printk(KERN_ALERT "bootmem alloc of %lu bytes failed!\n", size);
- panic("Out of memory");
- return NULL;
+ return __alloc_bootmem(size, align, goal);
}