Commit 23493c12 authored by Rui Teng's avatar Rui Teng Committed by Michael Ellerman

powerpc/mm: Fix check of multiple 16G pages from device tree

The offset of hugepage block will not be 16G, if the expected
page is more than one. Calculate the totol size instead of the
hardcode value.

Fixes: 4792adba ("powerpc: Don't use a 16G page if beyond mem= limits")
Signed-off-by: default avatarRui Teng <rui.teng@linux.vnet.ibm.com>
Tested-by: default avatarAnshuman Khandual <khandual@linux.vnet.ibm.com>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent 9227f043
...@@ -507,7 +507,7 @@ static int __init htab_dt_scan_hugepage_blocks(unsigned long node, ...@@ -507,7 +507,7 @@ static int __init htab_dt_scan_hugepage_blocks(unsigned long node,
printk(KERN_INFO "Huge page(16GB) memory: " printk(KERN_INFO "Huge page(16GB) memory: "
"addr = 0x%lX size = 0x%lX pages = %d\n", "addr = 0x%lX size = 0x%lX pages = %d\n",
phys_addr, block_size, expected_pages); phys_addr, block_size, expected_pages);
if (phys_addr + (16 * GB) <= memblock_end_of_DRAM()) { if (phys_addr + block_size * expected_pages <= memblock_end_of_DRAM()) {
memblock_reserve(phys_addr, block_size * expected_pages); memblock_reserve(phys_addr, block_size * expected_pages);
add_gpage(phys_addr, block_size, expected_pages); add_gpage(phys_addr, block_size, expected_pages);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment