]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - virt/kvm/kvm_main.c
KVM: x86: do not execute halted vcpus
[linux-2.6-omap-h63xx.git] / virt / kvm / kvm_main.c
index de3b029f6adf45e1c8d750e78d645963c8ac3911..63e661be040aed5cb45ae6c810abd06c07a89d83 100644 (file)
@@ -980,12 +980,12 @@ void kvm_vcpu_block(struct kvm_vcpu *vcpu)
        for (;;) {
                prepare_to_wait(&vcpu->wq, &wait, TASK_INTERRUPTIBLE);
 
-               if (kvm_cpu_has_interrupt(vcpu))
-                       break;
-               if (kvm_cpu_has_pending_timer(vcpu))
-                       break;
-               if (kvm_arch_vcpu_runnable(vcpu))
+               if (kvm_cpu_has_interrupt(vcpu) ||
+                   kvm_cpu_has_pending_timer(vcpu) ||
+                   kvm_arch_vcpu_runnable(vcpu)) {
+                       set_bit(KVM_REQ_UNHALT, &vcpu->requests);
                        break;
+               }
                if (signal_pending(current))
                        break;