From: Guo Ren <[email protected]> The max_mapnr is the number of PFNs, not absolute PFN offset.
Signed-off-by: Guo Ren <[email protected]> Cc: Palmer Dabbelt <[email protected]> --- arch/riscv/mm/init.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c index bf5379135e39..1576ee9e5e94 100644 --- a/arch/riscv/mm/init.c +++ b/arch/riscv/mm/init.c @@ -184,7 +184,7 @@ void __init setup_bootmem(void) max_pfn = PFN_DOWN(memblock_end_of_DRAM()); max_low_pfn = max_pfn; dma32_phys_limit = min(4UL * SZ_1G, (unsigned long)PFN_PHYS(max_low_pfn)); - set_max_mapnr(max_low_pfn); + set_max_mapnr(max_low_pfn - ARCH_PFN_OFFSET); #ifdef CONFIG_BLK_DEV_INITRD setup_initrd(); -- 2.17.1

