When trying to convert a physical address to its virtual address in dump_vmap_area() and dump_vmlist(), the vi->retval is added by 2 values: the page aligned address "pcheck" and page offset address "PAGEOFFSET(paddr)". However "paddr" is given by "pcheck", is also page aligned, so "PAGEOFFSET(paddr)" is always 0. In this patch, we will use PAGEOFFSET(vi->spec_addr) to give the page offset, vi->spec_addr is the physical address we'd like to convert, which contains the correct page offset. Signed-off-by: Tao Liu <ltao@xxxxxxxxxx> --- memory.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/memory.c b/memory.c index 9ab5781..1b6f9ba 100644 --- a/memory.c +++ b/memory.c @@ -8861,7 +8861,7 @@ dump_vmlist(struct meminfo *vi) (vi->spec_addr < (paddr+PAGESIZE()))) { if (vi->flags & GET_PHYS_TO_VMALLOC) { vi->retval = pcheck + - PAGEOFFSET(paddr); + PAGEOFFSET(vi->spec_addr); return; } else fprintf(fp, @@ -9010,7 +9010,7 @@ dump_vmap_area(struct meminfo *vi) (vi->spec_addr < (paddr+PAGESIZE()))) { if (vi->flags & GET_PHYS_TO_VMALLOC) { vi->retval = pcheck + - PAGEOFFSET(paddr); + PAGEOFFSET(vi->spec_addr); FREEBUF(ld->list_ptr); return; } else -- 2.33.1 -- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://listman.redhat.com/mailman/listinfo/crash-utility Contribution Guidelines: https://github.com/crash-utility/crash/wiki