diff --git a/target-i386/cpu.c b/target-i386/cpu.c index 99ad551bee32bc0f3e8c176100a6abcadda6cf1d..0faca03595e4b9dfc20994f2f7dd60bf8d0d4912 100644 --- a/target-i386/cpu.c +++ b/target-i386/cpu.c @@ -3063,7 +3063,9 @@ static bool x86_cpu_has_work(CPUState *cs) (cs->interrupt_request & (CPU_INTERRUPT_NMI | CPU_INTERRUPT_INIT | CPU_INTERRUPT_SIPI | - CPU_INTERRUPT_MCE)); + CPU_INTERRUPT_MCE)) || + ((cs->interrupt_request & CPU_INTERRUPT_SMI) && + !(env->hflags & HF_SMM_MASK)); } static Property x86_cpu_properties[] = {