On Tue, Jun 14, 2022 at 1:47 PM Sean Christopherson <seanjc@xxxxxxxxxx> wrote: > > Drop pending exceptions and events queued for re-injection when leaving > nested guest mode, even if the "exit" is due to VM-Fail, SMI, or forced > by host userspace. Failure to purge events could result in an event > belonging to L2 being injected into L1. > > This _should_ never happen for VM-Fail as all events should be blocked by > nested_run_pending, but it's possible if KVM, not the L1 hypervisor, is > the source of VM-Fail when running vmcs02. > > SMI is a nop (barring unknown bugs) as recognition of SMI and thus entry > to SMM is blocked by pending exceptions and re-injected events. > > Forced exit is definitely buggy, but has likely gone unnoticed because > userspace probably follows the forced exit with KVM_SET_VCPU_EVENTS (or > some other ioctl() that purges the queue). > > Fixes: 4f350c6dbcb9 ("kvm: nVMX: Handle deferred early VMLAUNCH/VMRESUME failure properly") > Cc: stable@xxxxxxxxxxxxxxx > Signed-off-by: Sean Christopherson <seanjc@xxxxxxxxxx> Reviewed-by: Jim Mattson <jmattson@xxxxxxxxxx>