powerpc/64s/ptdump: Fix kernel_hash_pagetable dump for ISA v3.00 HPTE format

HPTE format was changed since Power9 (ISA 3.0) onwards. While dumping
kernel hash page tables, nothing gets printed on powernv P9+. This patch
utilizes the helpers added in the patch tagged as fixes, to convert new
format to old format and dump the hptes. This fix is only needed for
native_find() (powernv), since pseries continues to work fine with the
old format.

Fixes: 6b243fcfb5 ("powerpc/64: Simplify adaptation to new ISA v3.00 HPTE format")
Signed-off-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com>
Link: https://patch.msgid.link/4c2bb9e5b3cfbc0dd80b61b67cdd3ccfc632684c.1761834163.git.ritesh.list@gmail.com
This commit is contained in:
Ritesh Harjani (IBM) 2025-10-30 20:27:28 +05:30 committed by Madhavan Srinivasan
parent 17b45ccf09
commit eae40a6da6
1 changed files with 6 additions and 0 deletions

View File

@ -216,6 +216,8 @@ static int native_find(unsigned long ea, int psize, bool primary, u64 *v, u64
vpn = hpt_vpn(ea, vsid, ssize);
hash = hpt_hash(vpn, shift, ssize);
want_v = hpte_encode_avpn(vpn, psize, ssize);
if (cpu_has_feature(CPU_FTR_ARCH_300))
want_v = hpte_old_to_new_v(want_v);
/* to check in the secondary hash table, we invert the hash */
if (!primary)
@ -229,6 +231,10 @@ static int native_find(unsigned long ea, int psize, bool primary, u64 *v, u64
/* HPTE matches */
*v = be64_to_cpu(hptep->v);
*r = be64_to_cpu(hptep->r);
if (cpu_has_feature(CPU_FTR_ARCH_300)) {
*v = hpte_new_to_old_v(*v, *r);
*r = hpte_new_to_old_r(*r);
}
return 0;
}
++hpte_group;