Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

mm: Add alloc_bootmem_low_pages_nopanic()

We don't need to panic in some case, like for swiotlb preallocating.

Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Link: http://lkml.kernel.org/r/1359058816-7615-35-git-send-email-yinghai@kernel.org
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>

authored by

Yinghai Lu and committed by
H. Peter Anvin
38fa4175 8b78c21d

+21
+5
include/linux/bootmem.h
··· 99 99 extern void *__alloc_bootmem_low(unsigned long size, 100 100 unsigned long align, 101 101 unsigned long goal); 102 + void *__alloc_bootmem_low_nopanic(unsigned long size, 103 + unsigned long align, 104 + unsigned long goal); 102 105 extern void *__alloc_bootmem_low_node(pg_data_t *pgdat, 103 106 unsigned long size, 104 107 unsigned long align, ··· 135 132 136 133 #define alloc_bootmem_low(x) \ 137 134 __alloc_bootmem_low(x, SMP_CACHE_BYTES, 0) 135 + #define alloc_bootmem_low_pages_nopanic(x) \ 136 + __alloc_bootmem_low_nopanic(x, PAGE_SIZE, 0) 138 137 #define alloc_bootmem_low_pages(x) \ 139 138 __alloc_bootmem_low(x, PAGE_SIZE, 0) 140 139 #define alloc_bootmem_low_pages_node(pgdat, x) \
+8
mm/bootmem.c
··· 833 833 return ___alloc_bootmem(size, align, goal, ARCH_LOW_ADDRESS_LIMIT); 834 834 } 835 835 836 + void * __init __alloc_bootmem_low_nopanic(unsigned long size, 837 + unsigned long align, 838 + unsigned long goal) 839 + { 840 + return ___alloc_bootmem_nopanic(size, align, goal, 841 + ARCH_LOW_ADDRESS_LIMIT); 842 + } 843 + 836 844 /** 837 845 * __alloc_bootmem_low_node - allocate low boot memory from a specific node 838 846 * @pgdat: node to allocate from
+8
mm/nobootmem.c
··· 391 391 return ___alloc_bootmem(size, align, goal, ARCH_LOW_ADDRESS_LIMIT); 392 392 } 393 393 394 + void * __init __alloc_bootmem_low_nopanic(unsigned long size, 395 + unsigned long align, 396 + unsigned long goal) 397 + { 398 + return ___alloc_bootmem_nopanic(size, align, goal, 399 + ARCH_LOW_ADDRESS_LIMIT); 400 + } 401 + 394 402 /** 395 403 * __alloc_bootmem_low_node - allocate low boot memory from a specific node 396 404 * @pgdat: node to allocate from