]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
KVM: x86: Don't update IRTE entries when old and new routes were !MSI
authorSean Christopherson <seanjc@google.com>
Wed, 11 Jun 2025 22:45:39 +0000 (15:45 -0700)
committerSean Christopherson <seanjc@google.com>
Mon, 23 Jun 2025 16:50:35 +0000 (09:50 -0700)
Skip the entirety of IRTE updates on a GSI routing change if neither the
old nor the new routing is for an MSI, i.e. if the neither routing setup
allows for posting to a vCPU.  If the IRTE isn't already host controlled,
KVM has bigger problems.

Link: https://lore.kernel.org/r/20250611224604.313496-38-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
arch/x86/kvm/irq.c

index ecebd150c2f7f980d009a783cd2c558d0a64f429..bc9ebd893566c53222067135e282096bdf1b8bf5 100644 (file)
@@ -618,6 +618,10 @@ void kvm_arch_update_irqfd_routing(struct kvm_kernel_irqfd *irqfd,
                                   struct kvm_kernel_irq_routing_entry *old,
                                   struct kvm_kernel_irq_routing_entry *new)
 {
+       if (new->type != KVM_IRQ_ROUTING_MSI &&
+           old->type != KVM_IRQ_ROUTING_MSI)
+               return;
+
        if (old->type == KVM_IRQ_ROUTING_MSI &&
            new->type == KVM_IRQ_ROUTING_MSI &&
            !memcmp(&old->msi, &new->msi, sizeof(new->msi)))