extended_addresses_enabled calls arm_el_is_aa64, hardcoding exception level 1. Instead, retrieve the current el calling arm_current_el.
Signed-off-by: Stefano Stabellini <sstabell...@kernel.org> diff --git a/target/arm/internals.h b/target/arm/internals.h index 1f6efef..63507d9 100644 --- a/target/arm/internals.h +++ b/target/arm/internals.h @@ -187,7 +187,7 @@ static inline unsigned int arm_pamax(ARMCPU *cpu) static inline bool extended_addresses_enabled(CPUARMState *env) { TCR *tcr = &env->cp15.tcr_el[arm_is_secure(env) ? 3 : 1]; - return arm_el_is_aa64(env, 1) || + return arm_el_is_aa64(env, arm_current_el(env)) || (arm_feature(env, ARM_FEATURE_LPAE) && (tcr->raw_tcr & TTBCR_EAE)); }