diff options
-rw-r--r-- | mm/page_alloc.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 8c1a116875bc..4a9a83fc1b39 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c | |||
@@ -3321,6 +3321,10 @@ void *__init alloc_large_system_hash(const char *tablename, | |||
3321 | numentries >>= (scale - PAGE_SHIFT); | 3321 | numentries >>= (scale - PAGE_SHIFT); |
3322 | else | 3322 | else |
3323 | numentries <<= (PAGE_SHIFT - scale); | 3323 | numentries <<= (PAGE_SHIFT - scale); |
3324 | |||
3325 | /* Make sure we've got at least a 0-order allocation.. */ | ||
3326 | if (unlikely((numentries * bucketsize) < PAGE_SIZE)) | ||
3327 | numentries = PAGE_SIZE / bucketsize; | ||
3324 | } | 3328 | } |
3325 | numentries = roundup_pow_of_two(numentries); | 3329 | numentries = roundup_pow_of_two(numentries); |
3326 | 3330 | ||