Messages in this thread Patch in this message | | | Date | Mon, 24 Apr 2006 16:44:29 -0500 | From | Jon Mason <> | Subject | [PATCH] mm: add a nopanic option for low bootmem |
| |
This patch adds a no panic option for low bootmem allocs. This will allow for a more graceful handling of "out of memory" for those callers who wish to handle it.
Thanks, Jon
Signed-off-by: Jon Mason <jdmason@us.ibm.com>
diff -r 307c5ac10c26 include/linux/bootmem.h --- a/include/linux/bootmem.h Sat Apr 22 12:21:45 2006 +++ b/include/linux/bootmem.h Mon Apr 24 09:59:50 2006 @@ -46,6 +46,7 @@ extern void __init free_bootmem (unsigned long addr, unsigned long size); extern void * __init __alloc_bootmem (unsigned long size, unsigned long align, unsigned long goal); extern void * __init __alloc_bootmem_nopanic (unsigned long size, unsigned long align, unsigned long goal); +extern void * __init __alloc_bootmem_low_nopanic(unsigned long size, unsigned long align, unsigned long goal); extern void * __init __alloc_bootmem_low(unsigned long size, unsigned long align, unsigned long goal); diff -r 307c5ac10c26 mm/bootmem.c --- a/mm/bootmem.c Sat Apr 22 12:21:45 2006 +++ b/mm/bootmem.c Mon Apr 24 09:59:50 2006 @@ -463,3 +463,16 @@ { return __alloc_bootmem_core(pgdat->bdata, size, align, goal, LOW32LIMIT); } + +void * __init __alloc_bootmem_low_nopanic(unsigned long size, + unsigned long align, unsigned long goal) +{ + bootmem_data_t *bdata; + void *ptr; + + list_for_each_entry(bdata, &bdata_list, list) + if ((ptr = __alloc_bootmem_core(bdata, size, align, goal, + LOW32LIMIT))) + return(ptr); + return NULL; +} - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |