diff options
author | Avi Kivity <avi@redhat.com> | 2012-06-12 20:21:38 +0300 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2012-07-09 14:19:04 +0300 |
commit | de87dcddc70ec6a90adfcc81f0ad7d84a892ffce (patch) | |
tree | 8cbb9d20db9b2be82681cf30ee1bc4f2213c71a1 | |
parent | 612e89f01569f562dfa76cd5b76310a42b34a214 (diff) | |
download | blackbird-op-linux-de87dcddc70ec6a90adfcc81f0ad7d84a892ffce.tar.gz blackbird-op-linux-de87dcddc70ec6a90adfcc81f0ad7d84a892ffce.zip |
KVM: VMX: Stop invalid guest state emulation on pending event
Process the event, possibly injecting an interrupt, before continuing.
Signed-off-by: Avi Kivity <avi@redhat.com>
-rw-r--r-- | arch/x86/kvm/vmx.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c index 2e51e7c6d2a8..a62f92ab1be2 100644 --- a/arch/x86/kvm/vmx.c +++ b/arch/x86/kvm/vmx.c @@ -4986,6 +4986,9 @@ static int handle_invalid_guest_state(struct kvm_vcpu *vcpu) if (intr_window_requested && vmx_interrupt_allowed(vcpu)) return handle_interrupt_window(&vmx->vcpu); + if (test_bit(KVM_REQ_EVENT, &vcpu->requests)) + return 1; + err = emulate_instruction(vcpu, 0); if (err == EMULATE_DO_MMIO) { |