summaryrefslogtreecommitdiffstats
path: root/arch/x86
diff options
context:
space:
mode:
authorMaxim Levitsky <mlevitsk@redhat.com>2021-08-26 12:57:49 +0300
committerPaolo Bonzini <pbonzini@redhat.com>2021-09-06 06:00:27 -0400
commit81b4b56d4f8130bbb99cf4e2b48082e5b4cfccb9 (patch)
tree1db8da85081191da368b0d57812ec26f638be512 /arch/x86
parenta717a780fc4e1dddd3fbf9ad08f180eec2a78194 (diff)
downloadlinux-stable-81b4b56d4f8130bbb99cf4e2b48082e5b4cfccb9.tar.gz
linux-stable-81b4b56d4f8130bbb99cf4e2b48082e5b4cfccb9.tar.bz2
linux-stable-81b4b56d4f8130bbb99cf4e2b48082e5b4cfccb9.zip
KVM: VMX: avoid running vmx_handle_exit_irqoff in case of emulation
If we are emulating an invalid guest state, we don't have a correct exit reason, and thus we shouldn't do anything in this function. Signed-off-by: Maxim Levitsky <mlevitsk@redhat.com> Message-Id: <20210826095750.1650467-2-mlevitsk@redhat.com> Cc: stable@vger.kernel.org Fixes: 95b5a48c4f2b ("KVM: VMX: Handle NMIs, #MCs and async #PFs in common irqs-disabled fn", 2019-06-18) Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'arch/x86')
-rw-r--r--arch/x86/kvm/vmx/vmx.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c
index fada1055f325..0c2c0d5ae873 100644
--- a/arch/x86/kvm/vmx/vmx.c
+++ b/arch/x86/kvm/vmx/vmx.c
@@ -6382,6 +6382,9 @@ static void vmx_handle_exit_irqoff(struct kvm_vcpu *vcpu)
{
struct vcpu_vmx *vmx = to_vmx(vcpu);
+ if (vmx->emulation_required)
+ return;
+
if (vmx->exit_reason.basic == EXIT_REASON_EXTERNAL_INTERRUPT)
handle_external_interrupt_irqoff(vcpu);
else if (vmx->exit_reason.basic == EXIT_REASON_EXCEPTION_NMI)