aboutsummaryrefslogtreecommitdiff
path: root/hw
diff options
context:
space:
mode:
Diffstat (limited to 'hw')
-rw-r--r--hw/apic.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/hw/apic.c b/hw/apic.c
index 18db3be4e..68e5de379 100644
--- a/hw/apic.c
+++ b/hw/apic.c
@@ -488,6 +488,7 @@ void apic_init_reset(CPUState *env)
if (!s)
return;
+ cpu_synchronize_state(env);
s->tpr = 0;
s->spurious_vec = 0xff;
s->log_dest = 0;
@@ -507,6 +508,10 @@ void apic_init_reset(CPUState *env)
s->wait_for_sipi = 1;
env->halted = !(s->apicbase & MSR_IA32_APICBASE_BSP);
+#ifdef KVM_CAP_MP_STATE
+ env->mp_state
+ = env->halted ? KVM_MP_STATE_INIT_RECEIVED : KVM_MP_STATE_RUNNABLE;
+#endif
}
static void apic_startup(APICState *s, int vector_num)