]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
KVM: x86: WARN if IRQ bypass routing is updated without in-kernel local APIC
authorSean Christopherson <seanjc@google.com>
Wed, 11 Jun 2025 22:45:54 +0000 (15:45 -0700)
committerSean Christopherson <seanjc@google.com>
Mon, 23 Jun 2025 16:50:45 +0000 (09:50 -0700)
Yell if kvm_pi_update_irte() is reached without an in-kernel local APIC,
as kvm_arch_irqfd_allowed() should prevent attaching an irqfd and thus any
and all postable IRQs to an APIC-less VM.

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

index 81a19d6afe44f2a6eccbe72ea8d740d22a5513c8..f87f63a53edebca78eff7de052ef940f66e603de 100644 (file)
@@ -517,8 +517,8 @@ static int kvm_pi_update_irte(struct kvm_kernel_irqfd *irqfd,
        struct kvm_lapic_irq irq;
        int r;
 
-       if (!irqchip_in_kernel(kvm) || WARN_ON_ONCE(!kvm_arch_has_irq_bypass()))
-               return 0;
+       if (WARN_ON_ONCE(!irqchip_in_kernel(kvm) || !kvm_arch_has_irq_bypass()))
+               return -EINVAL;
 
        if (entry && entry->type == KVM_IRQ_ROUTING_MSI) {
                kvm_set_msi_irq(kvm, entry, &irq);