]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
PCI: keystone: Use devm_request_irq() to free "ks-pcie-error-irq" on exit
authorSiddharth Vadapalli <s-vadapalli@ti.com>
Fri, 12 Sep 2025 10:07:58 +0000 (15:37 +0530)
committerManivannan Sadhasivam <mani@kernel.org>
Mon, 29 Sep 2025 16:09:45 +0000 (21:39 +0530)
Commit under Fixes introduced the IRQ handler for "ks-pcie-error-irq".
The interrupt is acquired using "request_irq()" but is never freed if
the driver exits due to an error. Although the section in the driver that
invokes "request_irq()" has moved around over time, the issue hasn't been
addressed until now.

Fix this by using "devm_request_irq()" which automatically frees the
interrupt if the driver exits.

Fixes: 025dd3daeda7 ("PCI: keystone: Add error IRQ handler")
Reported-by: Jiri Slaby <jirislaby@kernel.org>
Closes: https://lore.kernel.org/r/3d3a4b52-e343-42f3-9d69-94c259812143@kernel.org
Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com>
Signed-off-by: Manivannan Sadhasivam <mani@kernel.org>
Cc: stable@vger.kernel.org
Link: https://patch.msgid.link/20250912100802.3136121-2-s-vadapalli@ti.com
drivers/pci/controller/dwc/pci-keystone.c

index ac025bbd5bd581bda20862836429b0e4e480624f..42c88adb545de54d17228ca703016fe1f10661d6 100644 (file)
@@ -1201,8 +1201,8 @@ static int ks_pcie_probe(struct platform_device *pdev)
        if (irq < 0)
                return irq;
 
-       ret = request_irq(irq, ks_pcie_err_irq_handler, IRQF_SHARED,
-                         "ks-pcie-error-irq", ks_pcie);
+       ret = devm_request_irq(dev, irq, ks_pcie_err_irq_handler, IRQF_SHARED,
+                              "ks-pcie-error-irq", ks_pcie);
        if (ret < 0) {
                dev_err(dev, "failed to request error IRQ %d\n",
                        irq);