summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Mustacchi <rm@joyent.com>2011-11-28 21:29:18 +0000
committerRobert Mustacchi <rm@joyent.com>2011-11-28 21:29:18 +0000
commita131c2d183ff020f325c894f2d5d20a8c93ea3d9 (patch)
treec2ad79617cc122fe98a257a69e8b77ab92df1b4c
parent57e524c0917596ec7db57166242a62e59e38d719 (diff)
downloadillumos-kvm-a131c2d183ff020f325c894f2d5d20a8c93ea3d9.tar.gz
OS-745 system hung doing crosscalls
-rw-r--r--kvm_x86.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/kvm_x86.c b/kvm_x86.c
index b27521e..3c4839a 100644
--- a/kvm_x86.c
+++ b/kvm_x86.c
@@ -3417,13 +3417,10 @@ vcpu_enter_guest(struct kvm_vcpu *vcpu)
if (vcpu->fpu_active)
kvm_load_guest_fpu(vcpu);
- cli();
-
clear_bit(KVM_REQ_KICK, &vcpu->requests);
if (vcpu->requests || issig(JUSTLOOKING)) {
set_bit(KVM_REQ_KICK, &vcpu->requests);
- sti();
kpreempt_enable();
r = 1;
goto out;
@@ -3431,6 +3428,8 @@ vcpu_enter_guest(struct kvm_vcpu *vcpu)
inject_pending_event(vcpu);
+ cli();
+
/* enable NMI/IRQ window open exits if needed */
if (vcpu->arch.nmi_pending)
kvm_x86_ops->enable_nmi_window(vcpu);