[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 10/41] target/ppc: Fix test on mmu_model in hreg_compute_hflags_va
From: |
Cédric Le Goater |
Subject: |
[PULL 10/41] target/ppc: Fix test on mmu_model in hreg_compute_hflags_value() |
Date: |
Mon, 31 Jan 2022 12:07:40 +0100 |
POWERPC_MMU_BOOKE is not a mask and should not be tested with a
bitwise AND operator.
It went unnoticed because it only impacts the 601 CPU implementation
for which we don't have a known firmware image.
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Message-Id: <20220124081609.3672341-1-clg@kaod.org>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
target/ppc/helper_regs.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/target/ppc/helper_regs.c b/target/ppc/helper_regs.c
index 7dca585dddeb..5b12cb03c961 100644
--- a/target/ppc/helper_regs.c
+++ b/target/ppc/helper_regs.c
@@ -156,7 +156,8 @@ static uint32_t hreg_compute_hflags_value(CPUPPCState *env)
*/
unsigned immu_idx, dmmu_idx;
dmmu_idx = msr & (1 << MSR_PR) ? 0 : 1;
- if (env->mmu_model & POWERPC_MMU_BOOKE) {
+ if (env->mmu_model == POWERPC_MMU_BOOKE ||
+ env->mmu_model == POWERPC_MMU_BOOKE206) {
dmmu_idx |= msr & (1 << MSR_GS) ? 4 : 0;
immu_idx = dmmu_idx;
immu_idx |= msr & (1 << MSR_IS) ? 2 : 0;
@@ -237,7 +238,8 @@ int hreg_store_msr(CPUPPCState *env, target_ulong value,
int alter_hv)
((value >> MSR_DR) & 1) != msr_dr) {
cpu_interrupt_exittb(cs);
}
- if ((env->mmu_model & POWERPC_MMU_BOOKE) &&
+ if ((env->mmu_model == POWERPC_MMU_BOOKE ||
+ env->mmu_model == POWERPC_MMU_BOOKE206) &&
((value >> MSR_GS) & 1) != msr_gs) {
cpu_interrupt_exittb(cs);
}
--
2.34.1
- [PULL 00/41] ppc queue, Cédric Le Goater, 2022/01/31
- [PULL 18/41] target/ppc: 405: Critical exceptions cleanup, Cédric Le Goater, 2022/01/31
- [PULL 26/41] target/ppc: 405: Program exception cleanup, Cédric Le Goater, 2022/01/31
- [PULL 23/41] target/ppc: 405: Debug exception cleanup, Cédric Le Goater, 2022/01/31
- [PULL 11/41] target/ppc: Put do_rfi under a TCG-only block, Cédric Le Goater, 2022/01/31
- [PULL 14/41] target/ppc: 405: Rename MSR_POW to MSR_WE, Cédric Le Goater, 2022/01/31
- [PULL 25/41] target/ppc: 405: Instruction storage interrupt cleanup, Cédric Le Goater, 2022/01/31
- [PULL 33/41] target/ppc: Introduce powerpc_excp_74xx, Cédric Le Goater, 2022/01/31
- [PULL 06/41] ppc/pnv: use a do-while() loop in pnv_phb4_translate_tve(), Cédric Le Goater, 2022/01/31
- [PULL 19/41] target/ppc: 405: Machine check exception cleanup, Cédric Le Goater, 2022/01/31
- [PULL 10/41] target/ppc: Fix test on mmu_model in hreg_compute_hflags_value(),
Cédric Le Goater <=
- [PULL 27/41] target/ppc: 405: Watchdog timer exception cleanup, Cédric Le Goater, 2022/01/31
- [PULL 35/41] target/ppc: 74xx: Machine Check exception cleanup, Cédric Le Goater, 2022/01/31
- [PULL 32/41] target/ppc: books: Program exception cleanup, Cédric Le Goater, 2022/01/31
- [PULL 01/41] spapr: Force 32bit when resetting a core, Cédric Le Goater, 2022/01/31
- [PULL 30/41] target/ppc: books: Machine Check exception cleanup, Cédric Le Goater, 2022/01/31
- [PULL 05/41] ppc/pnv: use a do-while() loop in pnv_phb3_translate_tve(), Cédric Le Goater, 2022/01/31
- [PULL 16/41] target/ppc: Introduce powerpc_excp_40x, Cédric Le Goater, 2022/01/31
- [PULL 12/41] hw/ppc/vof: Add missing includes, Cédric Le Goater, 2022/01/31
- [PULL 38/41] target/ppc: 74xx: System Call exception cleanup, Cédric Le Goater, 2022/01/31
- [PULL 29/41] target/ppc: Simplify powerpc_excp_books, Cédric Le Goater, 2022/01/31