From: Borislav Petkov <bp@xxxxxxx> Booting v5.1-rc1 causes these new messages in dmesg here: genirq: Threaded irq requested with handler=NULL and !ONESHOT for irq 24 pcie_bw_notification: probe of 0000:00:02.0:pcie010 failed with error -22 because requesting a threaded IRQ with NULL handler needs to be oneshot. Otherwise a level-triggered interrupt endless loop can happen, see the detailed explanation above the "Threaded irq... " error message in kernel/irq/manage.c. And PCI-MSI type interrupts are one-shot safe but not in the IOAPIC case: 24: ... IO-APIC 28-fasteoi PCIe BW notif, PCIe BW notif, PCIe BW notif 25: ... IO-APIC 29-fasteoi PCIe BW notif, PCIe BW notif Make the BW notification handler oneshot too. Fixes: e8303bb7a75c ("PCI/LINK: Report degraded links via link bandwidth notification") Suggested-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx> Signed-off-by: Borislav Petkov <bp@xxxxxxx> Cc: Bjorn Helgaas <bhelgaas@xxxxxxxxxx> Cc: Lukas Wunner <lukas@xxxxxxxxx> Cc: Alexandru Gagniuc <mr.nuke.me@xxxxxxxxx> Cc: linux-pci@xxxxxxxxxxxxxxx --- drivers/pci/pcie/bw_notification.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pci/pcie/bw_notification.c b/drivers/pci/pcie/bw_notification.c index d2eae3b7cc0f..16e11c09f6bd 100644 --- a/drivers/pci/pcie/bw_notification.c +++ b/drivers/pci/pcie/bw_notification.c @@ -81,7 +81,7 @@ static int pcie_bandwidth_notification_probe(struct pcie_device *srv) return -ENODEV; ret = request_threaded_irq(srv->irq, NULL, pcie_bw_notification_handler, - IRQF_SHARED, "PCIe BW notif", srv); + IRQF_SHARED | IRQF_ONESHOT, "PCIe BW notif", srv); if (ret) return ret; -- 2.21.0