diff options
| -rw-r--r-- | arch/powerpc/mm/hash_native_64.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/arch/powerpc/mm/hash_native_64.c b/arch/powerpc/mm/hash_native_64.c index d873f6507f72..40e05e7f43de 100644 --- a/arch/powerpc/mm/hash_native_64.c +++ b/arch/powerpc/mm/hash_native_64.c | |||
| @@ -550,7 +550,11 @@ static void hpte_decode(struct hash_pte *hpte, unsigned long slot, | |||
| 550 | } | 550 | } |
| 551 | } | 551 | } |
| 552 | /* This works for all page sizes, and for 256M and 1T segments */ | 552 | /* This works for all page sizes, and for 256M and 1T segments */ |
| 553 | *ssize = hpte_v >> HPTE_V_SSIZE_SHIFT; | 553 | if (cpu_has_feature(CPU_FTR_ARCH_300)) |
| 554 | *ssize = hpte_r >> HPTE_R_3_0_SSIZE_SHIFT; | ||
| 555 | else | ||
| 556 | *ssize = hpte_v >> HPTE_V_SSIZE_SHIFT; | ||
| 557 | |||
| 554 | shift = mmu_psize_defs[size].shift; | 558 | shift = mmu_psize_defs[size].shift; |
| 555 | 559 | ||
| 556 | avpn = (HPTE_V_AVPN_VAL(hpte_v) & ~mmu_psize_defs[size].avpnm); | 560 | avpn = (HPTE_V_AVPN_VAL(hpte_v) & ~mmu_psize_defs[size].avpnm); |
