diff options
Diffstat (limited to 'target-i386/machine.c')
-rw-r--r-- | target-i386/machine.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/target-i386/machine.c b/target-i386/machine.c index 6bd447fbf..9ac477b35 100644 --- a/target-i386/machine.c +++ b/target-i386/machine.c @@ -366,7 +366,15 @@ static int cpu_post_load(void *opaque, int version_id) hw_breakpoint_insert(env, i); tlb_flush(env, 1); - kvm_load_mpstate(env); + + if (kvm_enabled()) { + /* when in-kernel irqchip is used, env->halted causes deadlock + because no userspace IRQs will ever clear this flag */ + env->halted = 0; + + kvm_load_tsc(env); + kvm_load_mpstate(env); + } return 0; } |