Skip to content

Commit 2cb9317

Browse files
committed
KVM: x86: Raise an event request when processing NMIs if an NMI is pending
Don't raise KVM_REQ_EVENT if no NMIs are pending at the end of process_nmi(). Finishing process_nmi() without a pending NMI will become much more likely when KVM gains support for AMD's vNMI, which allows pending vNMIs in hardware, i.e. doesn't require explicit injection. Signed-off-by: Santosh Shukla <Santosh.Shukla@amd.com> Link: https://lore.kernel.org/r/20230227084016.3368-6-santosh.shukla@amd.com Signed-off-by: Sean Christopherson <seanjc@google.com>
1 parent 772f254 commit 2cb9317

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

arch/x86/kvm/x86.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10150,7 +10150,9 @@ static void process_nmi(struct kvm_vcpu *vcpu)
1015010150

1015110151
vcpu->arch.nmi_pending += atomic_xchg(&vcpu->arch.nmi_queued, 0);
1015210152
vcpu->arch.nmi_pending = min(vcpu->arch.nmi_pending, limit);
10153-
kvm_make_request(KVM_REQ_EVENT, vcpu);
10153+
10154+
if (vcpu->arch.nmi_pending)
10155+
kvm_make_request(KVM_REQ_EVENT, vcpu);
1015410156
}
1015510157

1015610158
void kvm_make_scan_ioapic_request_mask(struct kvm *kvm,

0 commit comments

Comments
 (0)