diff options
| author | Anton Blanchard <anton@samba.org> | 2004-06-26 20:53:37 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-06-26 20:53:37 -0700 |
| commit | e2dcfb355e776f2bd2bd64b3e04cd1dd8d668aa9 (patch) | |
| tree | 52a7862b91d96d7010ccf7bce55ee37967aa916b | |
| parent | 7518f92d71e5c95d254cc04cb30cebbde6d783ea (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.c | 7 |
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); } |
