|
@@ -550,7 +550,11 @@ static void hpte_decode(struct hash_pte *hpte, unsigned long slot,
|
|
|
}
|
|
|
}
|
|
|
/* This works for all page sizes, and for 256M and 1T segments */
|
|
|
- *ssize = hpte_v >> HPTE_V_SSIZE_SHIFT;
|
|
|
+ if (cpu_has_feature(CPU_FTR_ARCH_300))
|
|
|
+ *ssize = hpte_r >> HPTE_R_3_0_SSIZE_SHIFT;
|
|
|
+ else
|
|
|
+ *ssize = hpte_v >> HPTE_V_SSIZE_SHIFT;
|
|
|
+
|
|
|
shift = mmu_psize_defs[size].shift;
|
|
|
|
|
|
avpn = (HPTE_V_AVPN_VAL(hpte_v) & ~mmu_psize_defs[size].avpnm);
|