diff --git a/qemu/target/arm/helper.c b/qemu/target/arm/helper.c index a74df2ec..6821eed2 100644 --- a/qemu/target/arm/helper.c +++ b/qemu/target/arm/helper.c @@ -5479,7 +5479,7 @@ static int bad_mode_switch(CPUARMState *env, int mode, CPSRWriteType write_type) return 0; case ARM_CPU_MODE_HYP: return !arm_feature(env, ARM_FEATURE_EL2) - || arm_current_el(env) < 2 || arm_is_secure(env); + || arm_current_el(env) < 2 || arm_is_secure_below_el3(env); case ARM_CPU_MODE_MON: return arm_current_el(env) < 3; default: