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 event_trb.completion_code() == TrbCompletionCode::Invalid as u8 {
|
||||||
if count == 0 {
|
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();
|
//hci_clone.event_handler_finished();
|
||||||
self.unmask_interrupts();
|
self.unmask_interrupts();
|
||||||
|
|||||||
Reference in New Issue
Block a user