diff --git a/drivers/usb/xhcid/src/xhci/irq_reactor.rs b/drivers/usb/xhcid/src/xhci/irq_reactor.rs index 1fdf573bf2..25be5a88c7 100644 --- a/drivers/usb/xhcid/src/xhci/irq_reactor.rs +++ b/drivers/usb/xhcid/src/xhci/irq_reactor.rs @@ -267,7 +267,15 @@ impl IrqReactor { if event_trb.completion_code() == TrbCompletionCode::Invalid as u8 { if count == 0 { - warn!("xhci: Received interrupt, but no event was found in the event ring. Ignoring interrupt.") + // Linux 7.1 xhci-pci.c SPURIOUS_REBOOT: some + // Intel controllers (Panther Point, Lynx Point) + // generate spurious interrupts under load. + // Downgrade from warn to debug when quirked. + if self.hci.quirks.contains(crate::xhci::quirks::XhciQuirks::SPURIOUS_REBOOT) { + debug!("xhci: spurious interrupt (SPURIOUS_REBOOT quirk active) — ignoring"); + } else { + warn!("xhci: Received interrupt, but no event was found in the event ring. Ignoring interrupt."); + } } //hci_clone.event_handler_finished(); self.unmask_interrupts();