diff --git a/qemu/target-arm/helper.c b/qemu/target-arm/helper.c index 139b2c8b..21a91dd8 100644 --- a/qemu/target-arm/helper.c +++ b/qemu/target-arm/helper.c @@ -4525,7 +4525,7 @@ static int bad_mode_switch(CPUARMState *env, int mode) return !arm_feature(env, ARM_FEATURE_EL2) || arm_current_el(env) < 2 || arm_is_secure(env); case ARM_CPU_MODE_MON: - return !arm_is_secure(env); + return arm_current_el(env) < 3; default: return 1; }