[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