[PATCH][makedumpfile] 1/2 riscv64: Fix vaddr_to_paddr for vmalloc and vmemmap regions

Rui Qi qirui.001 at bytedance.com
Wed May 6 04:57:57 PDT 2026


The current vaddr_to_paddr_riscv64() incorrectly uses VTOP() linear
mapping for vmalloc and vmemmap addresses, which are not linearly
mapped. Add checks to exclude these regions so they fall through to
page table walk via vtop_riscv64().

Co-developed-by: Rui Qi <qirui.001 at bytedance.com>
Signed-off-by: Shuan He <heshuan at bytedance.com>
---
 arch/riscv64.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/riscv64.c b/arch/riscv64.c
index 1b43ec4f62a1..28365fa0cc5b 100644
--- a/arch/riscv64.c
+++ b/arch/riscv64.c
@@ -202,6 +202,8 @@ vaddr_to_paddr_riscv64(unsigned long vaddr)
 	unsigned long long swapper_phys;
 
 	if (vaddr >= PAGE_OFFSET &&
+	    !(vaddr >= NUMBER(vmalloc_start) && vaddr <= NUMBER(vmalloc_end)) &&
+	    !(vaddr >= NUMBER(vmemmap_start) && vaddr <= NUMBER(vmemmap_end)) &&
 	    !(vaddr >= NUMBER(modules_vaddr) && vaddr <= NUMBER(modules_end))){
 		return VTOP(vaddr);
 	}
-- 
2.20.1



More information about the kexec mailing list