target/arm: Pass MemOp to get_phys_addr_lpae

Pass the value through from get_phys_addr_nogpc.

Reviewed-by: Helge Deller <deller@gmx.de>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
Richard Henderson 2024-10-05 07:42:19 -07:00
parent 21e5a2870e
commit c053f40b59

View File

@ -1684,12 +1684,13 @@ static bool nv_nv1_enabled(CPUARMState *env, S1Translate *ptw)
* @ptw: Current and next stage parameters for the walk. * @ptw: Current and next stage parameters for the walk.
* @address: virtual address to get physical address for * @address: virtual address to get physical address for
* @access_type: MMU_DATA_LOAD, MMU_DATA_STORE or MMU_INST_FETCH * @access_type: MMU_DATA_LOAD, MMU_DATA_STORE or MMU_INST_FETCH
* @memop: memory operation feeding this access, or 0 for none
* @result: set on translation success, * @result: set on translation success,
* @fi: set to fault info if the translation fails * @fi: set to fault info if the translation fails
*/ */
static bool get_phys_addr_lpae(CPUARMState *env, S1Translate *ptw, static bool get_phys_addr_lpae(CPUARMState *env, S1Translate *ptw,
uint64_t address, uint64_t address,
MMUAccessType access_type, MMUAccessType access_type, MemOp memop,
GetPhysAddrResult *result, ARMMMUFaultInfo *fi) GetPhysAddrResult *result, ARMMMUFaultInfo *fi)
{ {
ARMCPU *cpu = env_archcpu(env); ARMCPU *cpu = env_archcpu(env);
@ -3534,7 +3535,8 @@ static bool get_phys_addr_nogpc(CPUARMState *env, S1Translate *ptw,
} }
if (regime_using_lpae_format(env, mmu_idx)) { if (regime_using_lpae_format(env, mmu_idx)) {
return get_phys_addr_lpae(env, ptw, address, access_type, result, fi); return get_phys_addr_lpae(env, ptw, address, access_type,
memop, result, fi);
} else if (arm_feature(env, ARM_FEATURE_V7) || } else if (arm_feature(env, ARM_FEATURE_V7) ||
regime_sctlr(env, mmu_idx) & SCTLR_XP) { regime_sctlr(env, mmu_idx) & SCTLR_XP) {
return get_phys_addr_v6(env, ptw, address, access_type, result, fi); return get_phys_addr_v6(env, ptw, address, access_type, result, fi);