kvm: Synchronize cpu state in kvm_arch_stop_on_emulation_error()
authorGleb Natapov <gleb@redhat.com>
Thu, 16 Feb 2012 09:12:51 +0000 (11:12 +0200)
committerAvi Kivity <avi@redhat.com>
Thu, 16 Feb 2012 16:21:46 +0000 (18:21 +0200)
Call to kvm_cpu_synchronize_state() is missing.
kvm_arch_stop_on_emulation_error may look at outdated registers here.

Signed-off-by: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
Reviewed-by: Jan Kiszka <jan.kiszka@siemens.com>
target-i386/kvm.c

index 981192d..0e0b63b 100644 (file)
@@ -1987,6 +1987,7 @@ int kvm_arch_handle_exit(CPUState *env, struct kvm_run *run)
 
 bool kvm_arch_stop_on_emulation_error(CPUState *env)
 {
+    kvm_cpu_synchronize_state(env);
     return !(env->cr[0] & CR0_PE_MASK) ||
            ((env->segs[R_CS].selector  & 3) != 3);
 }