On 22/2/23 03:33, Richard Henderson wrote:
This fixes a bug in which we failed to initialize
the result attributes properly after the memset.

Signed-off-by: Richard Henderson <richard.hender...@linaro.org>
---
  target/arm/ptw.c | 11 +----------
  1 file changed, 1 insertion(+), 10 deletions(-)

diff --git a/target/arm/ptw.c b/target/arm/ptw.c
index 6fa3d33a4e..7e1aa34d24 100644
--- a/target/arm/ptw.c
+++ b/target/arm/ptw.c
@@ -37,10 +37,6 @@ typedef struct S1Translate {
      void *out_host;
  } S1Translate;
-static bool get_phys_addr_lpae(CPUARMState *env, S1Translate *ptw,
-                               uint64_t address, MMUAccessType access_type,
-                               GetPhysAddrResult *result, ARMMMUFaultInfo *fi);
-
  static bool get_phys_addr_with_struct(CPUARMState *env, S1Translate *ptw,
                                        target_ulong address,
                                        MMUAccessType access_type,
@@ -2859,12 +2855,7 @@ static bool get_phys_addr_twostage(CPUARMState *env, 
S1Translate *ptw,
      cacheattrs1 = result->cacheattrs;
      memset(result, 0, sizeof(*result));
- if (arm_feature(env, ARM_FEATURE_PMSA)) {
-        ret = get_phys_addr_pmsav8(env, ipa, access_type,
-                                   ptw->in_mmu_idx, is_secure, result, fi);
-    } else {
-        ret = get_phys_addr_lpae(env, ptw, ipa, access_type, result, fi);
-    }
+    ret = get_phys_addr_with_struct(env, ptw, ipa, access_type, result, fi);
      fi->s2addr = ipa;
/* Combine the S1 and S2 perms. */

LGTM but better have Peter double-check ;)

Reviewed-by: Philippe Mathieu-Daudé <phi...@linaro.org>


Reply via email to