Messages in this thread Patch in this message | | | From | Borislav Petkov <> | Subject | [PATCH] PCI/LINK: Request a one-shot IRQ with NULL handler | Date | Mon, 25 Mar 2019 19:23:38 +0100 |
| |
From: Borislav Petkov <bp@suse.de>
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@linutronix.de> Signed-off-by: Borislav Petkov <bp@suse.de> Cc: Bjorn Helgaas <bhelgaas@google.com> Cc: Lukas Wunner <lukas@wunner.de> Cc: Alexandru Gagniuc <mr.nuke.me@gmail.com> Cc: linux-pci@vger.kernel.org --- 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
| |