• Paolo Bonzini's avatar
    kvm: nVMX: fix entry with pending interrupt if APICv is enabled · 7e712684
    Paolo Bonzini authored
    Commit b5861e5c introduced a check on
    the interrupt-window and NMI-window CPU execution controls in order to
    inject an external interrupt vmexit before the first guest instruction
    executes.  However, when APIC virtualization is enabled the host does not
    need a vmexit in order to inject an interrupt at the next interrupt window;
    instead, it just places the interrupt vector in RVI and the processor will
    inject it as soon as possible.  Therefore, on machines with APICv it is
    not enough to check the CPU execution controls: the same scenario can also
    happen if RVI>vPPR.
    
    Fixes: b5861e5cReviewed-by: default avatarNikita Leshchenko <nikita.leshchenko@oracle.com>
    Cc: Sean Christopherson <sean.j.christopherson@intel.com>
    Cc: Liran Alon <liran.alon@oracle.com>
    Cc: Radim Krčmář <rkrcmar@redhat.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    7e712684
vmx.c 404 KB