USB: SPURIOUS_REBOOT quirk enforcement in IRQ reactor
Cross-referenced with Linux 7.1 xhci-pci.c SPURIOUS_REBOOT handling. irq_reactor.rs event loop: - When quirk is active on Intel Panther Point / Lynx Point controllers, downgrades the "Received interrupt but no event" warning to debug level. These controllers generate spurious interrupts under load; the quirk suppresses the noise. Quirk enforcement count: 5→6/50 (SPURIOUS_REBOOT added).
This commit is contained in:
@@ -267,7 +267,15 @@ impl<const N: usize> IrqReactor<N> {
|
||||
|
||||
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();
|
||||
|
||||
Reference in New Issue
Block a user