|
@@ -3321,6 +3321,10 @@ void *__init alloc_large_system_hash(const char *tablename,
|
|
numentries >>= (scale - PAGE_SHIFT);
|
|
numentries >>= (scale - PAGE_SHIFT);
|
|
else
|
|
else
|
|
numentries <<= (PAGE_SHIFT - scale);
|
|
numentries <<= (PAGE_SHIFT - scale);
|
|
|
|
+
|
|
|
|
+ /* Make sure we've got at least a 0-order allocation.. */
|
|
|
|
+ if (unlikely((numentries * bucketsize) < PAGE_SIZE))
|
|
|
|
+ numentries = PAGE_SIZE / bucketsize;
|
|
}
|
|
}
|
|
numentries = roundup_pow_of_two(numentries);
|
|
numentries = roundup_pow_of_two(numentries);
|
|
|
|
|