kvm: set cpu_single_env around KVM_RUN ioctl
authorMarcelo Tosatti <mtosatti@redhat.com>
Tue, 4 May 2010 12:45:19 +0000 (09:45 -0300)
committerMarcelo Tosatti <mtosatti@redhat.com>
Tue, 11 May 2010 17:02:21 +0000 (14:02 -0300)
Zero cpu_single_env before leaving global lock protection, and
restore on return.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
kvm-all.c

index 6962b2b..fbd084c 100644 (file)
--- a/kvm-all.c
+++ b/kvm-all.c
@@ -838,9 +838,11 @@ int kvm_cpu_exec(CPUState *env)
         }
 
         kvm_arch_pre_run(env, run);
+        cpu_single_env = NULL;
         qemu_mutex_unlock_iothread();
         ret = kvm_vcpu_ioctl(env, KVM_RUN, 0);
         qemu_mutex_lock_iothread();
+        cpu_single_env = env;
         kvm_arch_post_run(env, run);
 
         if (ret == -EINTR || ret == -EAGAIN) {