diff options
author | Ingo Molnar <mingo@kernel.org> | 2025-03-04 11:15:26 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2025-03-04 11:15:26 +0100 |
commit | 1b4c36f9b11e4a68f6174d1b6542b50cd29cddd2 (patch) | |
tree | 735b11a744d0acd18a1d7b7a4a5fa63fc6d23b92 /arch/x86/kvm/vmx/nested.c | |
parent | d0ba9bcf001c7907e4755b0e498f5ff9d1a228ef (diff) | |
parent | f6bdaab79ee4228a143ee1b4cb80416d6ffc0c63 (diff) |
Merge branch 'x86/urgent' into x86/cpu, to pick up dependent commits
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/x86/kvm/vmx/nested.c')
-rw-r--r-- | arch/x86/kvm/vmx/nested.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/x86/kvm/vmx/nested.c b/arch/x86/kvm/vmx/nested.c index 8a7af02d466e..ed8a3cb53961 100644 --- a/arch/x86/kvm/vmx/nested.c +++ b/arch/x86/kvm/vmx/nested.c @@ -5084,6 +5084,17 @@ void nested_vmx_vmexit(struct kvm_vcpu *vcpu, u32 vm_exit_reason, load_vmcs12_host_state(vcpu, vmcs12); + /* + * Process events if an injectable IRQ or NMI is pending, even + * if the event is blocked (RFLAGS.IF is cleared on VM-Exit). + * If an event became pending while L2 was active, KVM needs to + * either inject the event or request an IRQ/NMI window. SMIs + * don't need to be processed as SMM is mutually exclusive with + * non-root mode. INIT/SIPI don't need to be checked as INIT + * is blocked post-VMXON, and SIPIs are ignored. + */ + if (kvm_cpu_has_injectable_intr(vcpu) || vcpu->arch.nmi_pending) + kvm_make_request(KVM_REQ_EVENT, vcpu); return; } |