Merge branch 'topic/cleanup' into for-linus
[pandora-kernel.git] / arch / x86 / kvm / vmx.c
index 356a0ce..29f9129 100644 (file)
@@ -3157,8 +3157,8 @@ static void handle_invalid_guest_state(struct kvm_vcpu *vcpu,
        struct vcpu_vmx *vmx = to_vmx(vcpu);
        enum emulation_result err = EMULATE_DONE;
 
-       preempt_enable();
        local_irq_enable();
+       preempt_enable();
 
        while (!guest_state_valid(vcpu)) {
                err = emulate_instruction(vcpu, kvm_run, 0, 0, 0);
@@ -3168,7 +3168,7 @@ static void handle_invalid_guest_state(struct kvm_vcpu *vcpu,
 
                if (err != EMULATE_DONE) {
                        kvm_report_emulation_failure(vcpu, "emulation failure");
-                       return;
+                       break;
                }
 
                if (signal_pending(current))
@@ -3177,8 +3177,8 @@ static void handle_invalid_guest_state(struct kvm_vcpu *vcpu,
                        schedule();
        }
 
-       local_irq_disable();
        preempt_disable();
+       local_irq_disable();
 
        vmx->invalid_state_emulation_result = err;
 }