KVM: VMX: Use accessor to read vmcs.INTR_INFO when handling exception
authorSean Christopherson <sean.j.christopherson@intel.com>
Mon, 27 Apr 2020 17:18:37 +0000 (10:18 -0700)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 13 May 2020 16:15:01 +0000 (12:15 -0400)
Use vmx_get_intr_info() when grabbing the cached vmcs.INTR_INFO in
handle_exception_nmi() to ensure the cache isn't stale.  Bypassing the
caching accessor doesn't cause any known issues as the cache is always
refreshed by handle_exception_nmi_irqoff(), but the whole point of
adding the proper caching mechanism was to avoid such dependencies.

Fixes: 8791585837f6 ("KVM: VMX: Cache vmcs.EXIT_INTR_INFO using arch avail_reg flags")
Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com>
Message-Id: <20200427171837.22613-1-sean.j.christopherson@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/vmx/vmx.c

index f519fc7..fbede08 100644 (file)
@@ -4705,7 +4705,7 @@ static int handle_exception_nmi(struct kvm_vcpu *vcpu)
        u32 vect_info;
 
        vect_info = vmx->idt_vectoring_info;
-       intr_info = vmx->exit_intr_info;
+       intr_info = vmx_get_intr_info(vcpu);
 
        if (is_machine_check(intr_info) || is_nmi(intr_info))
                return 1; /* handled by handle_exception_nmi_irqoff() */