mm: alloc_large_system_hash() printk overflow on 16TB boot

During boot of a 16TB system, the following is printed:
Dentry cache hash table entries: -2147483648 (order: 22, 17179869184 bytes)

Signed-off-by: Robin Holt <holt@sgi.com>
Reviewed-by: WANG Cong <xiyou.wangcong@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Robin Holt 2010-10-07 12:59:26 -07:00 committed by Linus Torvalds
parent cb655d0f3d
commit f241e6607b

View File

@ -5182,9 +5182,9 @@ void *__init alloc_large_system_hash(const char *tablename,
if (!table) if (!table)
panic("Failed to allocate %s hash table\n", tablename); panic("Failed to allocate %s hash table\n", tablename);
printk(KERN_INFO "%s hash table entries: %d (order: %d, %lu bytes)\n", printk(KERN_INFO "%s hash table entries: %ld (order: %d, %lu bytes)\n",
tablename, tablename,
(1U << log2qty), (1UL << log2qty),
ilog2(size) - PAGE_SHIFT, ilog2(size) - PAGE_SHIFT,
size); size);