mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] KVM: x86: WARN and fail kvm_set_irq() if a PIC or I/O APIC vector is invalid
@ 2026-06-18 18:52 Sean Christopherson
  2026-06-19  7:33 ` Huang, Kai
  2026-06-24  9:53 ` Paolo Bonzini
  0 siblings, 2 replies; 3+ messages in thread
From: Sean Christopherson @ 2026-06-18 18:52 UTC (permalink / raw)
  To: Sean Christopherson, Paolo Bonzini; +Cc: kvm, linux-kernel

WARN and return an error up the stack if the PIC or I/O APIC encounters an
invalid vector when injecting an IRQ, as there is no danger to the host and
thus no justification for potentially panicking the kernel.  Don't bug the
VM either, as the risk of corrupting the guest is minuscule, and the guest
might even be completely tolerant of a lost interrupt.

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
 arch/x86/kvm/i8259.c  | 3 ++-
 arch/x86/kvm/ioapic.c | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/arch/x86/kvm/i8259.c b/arch/x86/kvm/i8259.c
index 59e28c45d7dc..6a942ac622d5 100644
--- a/arch/x86/kvm/i8259.c
+++ b/arch/x86/kvm/i8259.c
@@ -194,7 +194,8 @@ int kvm_pic_set_irq(struct kvm_kernel_irq_routing_entry *e, struct kvm *kvm,
 	int irq = e->irqchip.pin;
 	int ret, irq_level;
 
-	BUG_ON(irq < 0 || irq >= PIC_NUM_PINS);
+	if (WARN_ON_ONCE(irq < 0 || irq >= PIC_NUM_PINS))
+		return -1;
 
 	pic_lock(s);
 	irq_level = __kvm_irq_line_state(&s->irq_states[irq],
diff --git a/arch/x86/kvm/ioapic.c b/arch/x86/kvm/ioapic.c
index f3f4a483ca15..88bd226f3b73 100644
--- a/arch/x86/kvm/ioapic.c
+++ b/arch/x86/kvm/ioapic.c
@@ -504,7 +504,8 @@ int kvm_ioapic_set_irq(struct kvm_kernel_irq_routing_entry *e, struct kvm *kvm,
 	int irq = e->irqchip.pin;
 	int ret, irq_level;
 
-	BUG_ON(irq < 0 || irq >= IOAPIC_NUM_PINS);
+	if (WARN_ON_ONCE(irq < 0 || irq >= IOAPIC_NUM_PINS))
+		return -1;
 
 	spin_lock(&ioapic->lock);
 	irq_level = __kvm_irq_line_state(&ioapic->irq_states[irq],

base-commit: 9d4853b044beefa21c4ee3e18c40653601a64ced
-- 
2.55.0.rc0.738.g0c8ab3ebcc-goog


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] KVM: x86: WARN and fail kvm_set_irq() if a PIC or I/O APIC vector is invalid
  2026-06-18 18:52 [PATCH] KVM: x86: WARN and fail kvm_set_irq() if a PIC or I/O APIC vector is invalid Sean Christopherson
@ 2026-06-19  7:33 ` Huang, Kai
  2026-06-24  9:53 ` Paolo Bonzini
  1 sibling, 0 replies; 3+ messages in thread
From: Huang, Kai @ 2026-06-19  7:33 UTC (permalink / raw)
  To: pbonzini, seanjc; +Cc: kvm, linux-kernel

On Thu, 2026-06-18 at 11:52 -0700, Sean Christopherson wrote:
> WARN and return an error up the stack if the PIC or I/O APIC encounters an
> invalid vector when injecting an IRQ, as there is no danger to the host and
> thus no justification for potentially panicking the kernel.  Don't bug the
> VM either, as the risk of corrupting the guest is minuscule, and the guest
> might even be completely tolerant of a lost interrupt.
> 
> Signed-off-by: Sean Christopherson <seanjc@google.com>
> 

Reviewed-by: Kai Huang <kai.huang@intel.com>

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] KVM: x86: WARN and fail kvm_set_irq() if a PIC or I/O APIC vector is invalid
  2026-06-18 18:52 [PATCH] KVM: x86: WARN and fail kvm_set_irq() if a PIC or I/O APIC vector is invalid Sean Christopherson
  2026-06-19  7:33 ` Huang, Kai
@ 2026-06-24  9:53 ` Paolo Bonzini
  1 sibling, 0 replies; 3+ messages in thread
From: Paolo Bonzini @ 2026-06-24  9:53 UTC (permalink / raw)
  To: Sean Christopherson; +Cc: kvm, linux-kernel

Queued, thanks.

Paolo


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-06-24  9:54 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-06-18 18:52 [PATCH] KVM: x86: WARN and fail kvm_set_irq() if a PIC or I/O APIC vector is invalid Sean Christopherson
2026-06-19  7:33 ` Huang, Kai
2026-06-24  9:53 ` Paolo Bonzini

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome