Rework and cleanup KVM's event handling during nested VM-Enter emulation,
and ultimately fix a bug where KVM doesn't honor event priority when
delivering a nested posted interrupt. Specifically, if there is a posted
interrupt *notification* IRQ in L1's vIRR, the IRQ should not be acked by
the CPU if a higher priority event is recognized after VM-Enter (which
unblocks L1 IRQs).
FWIW, I don't exactly love the resulting code in vmx_check_nested_events(),
so if someone has a better idea...
Sean Christopherson (5):
KVM: nVMX: Explicitly update vPPR on successful nested VM-Enter
KVM: nVMX: Check for pending INIT/SIPI after entering non-root mode
KVM: nVMX: Drop manual vmcs01.GUEST_INTERRUPT_STATUS.RVI check at
VM-Enter
KVM: nVMX: Use vmcs01's controls shadow to check for IRQ/NMI windows
at VM-Enter
KVM: nVMX: Honor event priority when emulating PI delivery during
VM-Enter
arch/x86/kvm/vmx/nested.c | 77 ++++++++++++++++++++++-----------------
1 file changed, 44 insertions(+), 33 deletions(-)
base-commit: e466901b947d529f7b091a3b00b19d2bdee206ee
--
2.47.0.163.g1226f6d8fa-goog