summaryrefslogtreecommitdiff
path: root/drivers/mfd/ioc3.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2020-08-04 00:21:52 +0300
committerLinus Torvalds <torvalds@linux-foundation.org>2020-08-04 00:21:52 +0300
commit3b4b84b2ea9938e44fffa356c7b95f496b4246ab (patch)
treeed0478e667174bf7f1e9cf07cc601d1d68852eb0 /drivers/mfd/ioc3.c
parent145ff1ec090dce9beb5a9590b5dc288e7bb2e65d (diff)
parentaa251fc5b936d3ddb4b4c4b36427eb9aa3347c82 (diff)
downloadlinux-3b4b84b2ea9938e44fffa356c7b95f496b4246ab.tar.xz
Merge tag 'irq-urgent-2020-08-02' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull irq fixes from Ingo Molnar: "Fix a recent IRQ affinities regression, add in a missing debugfs printout that helps the debugging of IRQ affinity logic bugs, and fix a memory leak" * tag 'irq-urgent-2020-08-02' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: genirq/debugfs: Add missing irqchip flags genirq/affinity: Make affinity setting if activated opt-in irqdomain/treewide: Free firmware node after domain removal
Diffstat (limited to 'drivers/mfd/ioc3.c')
-rw-r--r--drivers/mfd/ioc3.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/mfd/ioc3.c b/drivers/mfd/ioc3.c
index 74cee7cb0afc..d939ccc46509 100644
--- a/drivers/mfd/ioc3.c
+++ b/drivers/mfd/ioc3.c
@@ -616,7 +616,10 @@ static int ioc3_mfd_probe(struct pci_dev *pdev,
/* Remove all already added MFD devices */
mfd_remove_devices(&ipd->pdev->dev);
if (ipd->domain) {
+ struct fwnode_handle *fn = ipd->domain->fwnode;
+
irq_domain_remove(ipd->domain);
+ irq_domain_free_fwnode(fn);
free_irq(ipd->domain_irq, (void *)ipd);
}
pci_iounmap(pdev, regs);
@@ -643,7 +646,10 @@ static void ioc3_mfd_remove(struct pci_dev *pdev)
/* Release resources */
mfd_remove_devices(&ipd->pdev->dev);
if (ipd->domain) {
+ struct fwnode_handle *fn = ipd->domain->fwnode;
+
irq_domain_remove(ipd->domain);
+ irq_domain_free_fwnode(fn);
free_irq(ipd->domain_irq, (void *)ipd);
}
pci_iounmap(pdev, ipd->regs);