diff options
author | Sean Christopherson <seanjc@google.com> | 2025-06-11 15:45:54 -0700 |
---|---|---|
committer | Sean Christopherson <seanjc@google.com> | 2025-06-23 09:50:45 -0700 |
commit | 25ef059e8bc51219f18fb7444aff1907960a3a53 (patch) | |
tree | c1bb35c5e43401247fbf0c61d941ea7e92e6b2fa | |
parent | d1bccaa1793d8f823983824635933e4bdc752b64 (diff) |
KVM: x86: WARN if IRQ bypass routing is updated without in-kernel local APIC
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>
-rw-r--r-- | arch/x86/kvm/irq.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/x86/kvm/irq.c b/arch/x86/kvm/irq.c index 81a19d6afe44..f87f63a53ede 100644 --- a/arch/x86/kvm/irq.c +++ b/arch/x86/kvm/irq.c @@ -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); |