Commit 38fa4175e60d98fb1c9815fb14f8057576dade73

Authored by Yinghai Lu
Committed by H. Peter Anvin
1 parent 8b78c21d72

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) \
... ... @@ -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
... ... @@ -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