summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--target-i386/cpu.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/target-i386/cpu.c b/target-i386/cpu.c
index 99ad551bee..0faca03595 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[] = {