Commit 38fa4175e60d98fb1c9815fb14f8057576dade73
Committed by
H. Peter Anvin
1 parent
8b78c21d72
Exists in
master
and in
20 other branches
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>
Showing 3 changed files with 21 additions and 0 deletions Side-by-side Diff
include/linux/bootmem.h
... | ... | @@ -99,6 +99,9 @@ |
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, |
... | ... | @@ -132,6 +135,8 @@ |
132 | 135 | |
133 | 136 | #define alloc_bootmem_low(x) \ |
134 | 137 | __alloc_bootmem_low(x, SMP_CACHE_BYTES, 0) |
138 | +#define alloc_bootmem_low_pages_nopanic(x) \ | |
139 | + __alloc_bootmem_low_nopanic(x, PAGE_SIZE, 0) | |
135 | 140 | #define alloc_bootmem_low_pages(x) \ |
136 | 141 | __alloc_bootmem_low(x, PAGE_SIZE, 0) |
137 | 142 | #define alloc_bootmem_low_pages_node(pgdat, x) \ |
mm/bootmem.c
... | ... | @@ -833,6 +833,14 @@ |
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 |
mm/nobootmem.c
... | ... | @@ -391,6 +391,14 @@ |
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 |