On Thu May 2, 2024 at 9:43 AM AEST, BALATON Zoltan wrote: > The "2" in booke206_update_mas_tlb_miss() call corresponds to > MMU_INST_FETCH which is the value of access_type in this branch; > mmubooke206_esr() only checks for MMU_DATA_STORE and it's called from > code access so using MMU_DATA_LOAD here seems wrong so replace it with > access_type here as well that yields the same result. This also makes > these calls the same as the data access branch further down.
Looks right. Reviewed-by: Nicholas Piggin <npig...@gmail.com> > > Signed-off-by: BALATON Zoltan <bala...@eik.bme.hu> > --- > target/ppc/mmu_common.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/target/ppc/mmu_common.c b/target/ppc/mmu_common.c > index 2487b4deff..762b13805b 100644 > --- a/target/ppc/mmu_common.c > +++ b/target/ppc/mmu_common.c > @@ -1288,13 +1288,13 @@ static bool ppc_jumbo_xlate(PowerPCCPU *cpu, vaddr > eaddr, > env->spr[SPR_40x_ESR] = 0x00000000; > break; > case POWERPC_MMU_BOOKE206: > - booke206_update_mas_tlb_miss(env, eaddr, 2, mmu_idx); > + booke206_update_mas_tlb_miss(env, eaddr, access_type, > mmu_idx); > /* fall through */ > case POWERPC_MMU_BOOKE: > cs->exception_index = POWERPC_EXCP_ITLB; > env->error_code = 0; > env->spr[SPR_BOOKE_DEAR] = eaddr; > - env->spr[SPR_BOOKE_ESR] = mmubooke206_esr(mmu_idx, > MMU_DATA_LOAD); > + env->spr[SPR_BOOKE_ESR] = mmubooke206_esr(mmu_idx, > access_type); > break; > case POWERPC_MMU_REAL: > cpu_abort(cs, "PowerPC in real mode should never raise "