Message ID | 20201008162155.161886-2-richard.henderson@linaro.org |
---|---|
State | New |
Headers | show |
Series | target/arm: MTE fixes | expand |
On 10/8/20 6:21 PM, Richard Henderson wrote: > We already have the full ARMMMUIdx as computed from the > function parameter. > > For the purpose of regime_has_2_ranges, we can ignore any > difference between AccType_Normal and AccType_Unpriv, which > would be the only difference between the passed mmu_idx > and arm_mmu_idx_el. > > Signed-off-by: Richard Henderson <richard.henderson@linaro.org> > --- > target/arm/mte_helper.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/target/arm/mte_helper.c b/target/arm/mte_helper.c > index 5615c6706c..734cc5ca67 100644 > --- a/target/arm/mte_helper.c > +++ b/target/arm/mte_helper.c > @@ -563,8 +563,7 @@ static void mte_check_fail(CPUARMState *env, uint32_t desc, > > case 2: > /* Tag check fail causes asynchronous flag set. */ > - mmu_idx = arm_mmu_idx_el(env, el); > - if (regime_has_2_ranges(mmu_idx)) { > + if (regime_has_2_ranges(arm_mmu_idx)) { > select = extract64(dirty_ptr, 55, 1); > } else { > select = 0; > Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
On 10/8/20 5:21 PM, Richard Henderson wrote: > We already have the full ARMMMUIdx as computed from the > function parameter. > > For the purpose of regime_has_2_ranges, we can ignore any > difference between AccType_Normal and AccType_Unpriv, which > would be the only difference between the passed mmu_idx > and arm_mmu_idx_el. > > Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Vincenzo Frascino <vincenzo.frascino@arm.com> Tested-by: Vincenzo Frascino <vincenzo.frascino@arm.com> > --- > target/arm/mte_helper.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/target/arm/mte_helper.c b/target/arm/mte_helper.c > index 5615c6706c..734cc5ca67 100644 > --- a/target/arm/mte_helper.c > +++ b/target/arm/mte_helper.c > @@ -563,8 +563,7 @@ static void mte_check_fail(CPUARMState *env, uint32_t desc, > > case 2: > /* Tag check fail causes asynchronous flag set. */ > - mmu_idx = arm_mmu_idx_el(env, el); > - if (regime_has_2_ranges(mmu_idx)) { > + if (regime_has_2_ranges(arm_mmu_idx)) { > select = extract64(dirty_ptr, 55, 1); > } else { > select = 0; > -- Regards, Vincenzo
diff --git a/target/arm/mte_helper.c b/target/arm/mte_helper.c index 5615c6706c..734cc5ca67 100644 --- a/target/arm/mte_helper.c +++ b/target/arm/mte_helper.c @@ -563,8 +563,7 @@ static void mte_check_fail(CPUARMState *env, uint32_t desc, case 2: /* Tag check fail causes asynchronous flag set. */ - mmu_idx = arm_mmu_idx_el(env, el); - if (regime_has_2_ranges(mmu_idx)) { + if (regime_has_2_ranges(arm_mmu_idx)) { select = extract64(dirty_ptr, 55, 1); } else { select = 0;
We already have the full ARMMMUIdx as computed from the function parameter. For the purpose of regime_has_2_ranges, we can ignore any difference between AccType_Normal and AccType_Unpriv, which would be the only difference between the passed mmu_idx and arm_mmu_idx_el. Signed-off-by: Richard Henderson <richard.henderson@linaro.org> --- target/arm/mte_helper.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)