aboutsummaryrefslogtreecommitdiffstats
path: root/mm/page_alloc.c
diff options
context:
space:
mode:
Diffstat (limited to 'mm/page_alloc.c')
-rw-r--r--mm/page_alloc.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 33b1a4762a7b..770f011e1c12 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -124,8 +124,8 @@ static char * const zone_names[MAX_NR_ZONES] = {
124 124
125int min_free_kbytes = 1024; 125int min_free_kbytes = 1024;
126 126
127unsigned long __meminitdata nr_kernel_pages; 127static unsigned long __meminitdata nr_kernel_pages;
128unsigned long __meminitdata nr_all_pages; 128static unsigned long __meminitdata nr_all_pages;
129static unsigned long __meminitdata dma_reserve; 129static unsigned long __meminitdata dma_reserve;
130 130
131#ifdef CONFIG_ARCH_POPULATES_NODE_MAP 131#ifdef CONFIG_ARCH_POPULATES_NODE_MAP
@@ -4821,7 +4821,14 @@ void *__init alloc_large_system_hash(const char *tablename,
4821 numentries <<= (PAGE_SHIFT - scale); 4821 numentries <<= (PAGE_SHIFT - scale);
4822 4822
4823 /* Make sure we've got at least a 0-order allocation.. */ 4823 /* Make sure we've got at least a 0-order allocation.. */
4824 if (unlikely((numentries * bucketsize) < PAGE_SIZE)) 4824 if (unlikely(flags & HASH_SMALL)) {
4825 /* Makes no sense without HASH_EARLY */
4826 WARN_ON(!(flags & HASH_EARLY));
4827 if (!(numentries >> *_hash_shift)) {
4828 numentries = 1UL << *_hash_shift;
4829 BUG_ON(!numentries);
4830 }
4831 } else if (unlikely((numentries * bucketsize) < PAGE_SIZE))
4825 numentries = PAGE_SIZE / bucketsize; 4832 numentries = PAGE_SIZE / bucketsize;
4826 } 4833 }
4827 numentries = roundup_pow_of_two(numentries); 4834 numentries = roundup_pow_of_two(numentries);