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 "


Reply via email to