----- Original Message ----- > > > > And that's because when a "machdep->uvtop()" operation is done on a > > user page that is not resident, the machine-dependent function should > > return FALSE -- but it should return the PTE value in the paddr > > pointer field so that it can be translated by vm_area_page_dump(). > > The s390x_uvtop() does not return the PTE, so the failed output can > > vary, because it's using an uninitialized "paddr" stack variable. > > But this is another easy fix, in this case to s390x_vtop(): > > > > /* lookup virtual address in page tables */ > > int s390x_vtop(ulong table, ulong vaddr, physaddr_t *phys_addr, int > > verbose) { > > ulong entry, paddr; > > int level, len; > > > > + *phys_addr = 0; > > > Looks also good. But probably I should implement a better fix that > returns the pte for s390x swap entries. That's true -- so since you've got the __swp_type() and __swp_offset() macros #define'd for s390x, presumably it should work if you just pass it back as is? Even though you've got the common s390x_vtop() function used by both s390x_kvtop() and s390x_uvtop(), I think it would be safe to pass the PTE entry back in either case, because kvtop() operations don't care about the paddr contents if you return FALSE. Dave -- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility