summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Christopherson <seanjc@google.com>2025-06-11 15:45:54 -0700
committerSean Christopherson <seanjc@google.com>2025-06-23 09:50:45 -0700
commit25ef059e8bc51219f18fb7444aff1907960a3a53 (patch)
treec1bb35c5e43401247fbf0c61d941ea7e92e6b2fa
parentd1bccaa1793d8f823983824635933e4bdc752b64 (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.c4
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);