projects
/
platform
/
kernel
/
linux-starfive.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
becfdcd
)
mfd: lp8788: Fix an error handling path in lp8788_irq_init() and lp8788_irq_init()
author
Christophe JAILLET
<christophe.jaillet@wanadoo.fr>
Sun, 31 Jul 2022 09:55:38 +0000
(11:55 +0200)
committer
Lee Jones
<lee@kernel.org>
Wed, 28 Sep 2022 15:09:50 +0000
(16:09 +0100)
In lp8788_irq_init(), if an error occurs after a successful
irq_domain_add_linear() call, it must be undone by a corresponding
irq_domain_remove() call.
irq_domain_remove() should also be called in lp8788_irq_exit() for the same
reason.
Fixes: eea6b7cc53aa ("mfd: Add lp8788 mfd driver")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: Lee Jones <lee@kernel.org>
Link:
https://lore.kernel.org/r/bcd5a72c9c1c383dd6324680116426e32737655a.1659261275.git.christophe.jaillet@wanadoo.fr
drivers/mfd/lp8788-irq.c
patch
|
blob
|
history
diff --git
a/drivers/mfd/lp8788-irq.c
b/drivers/mfd/lp8788-irq.c
index 348439a3fbbd45f56b9abb53124ab2b64c0030f2..39006297f3d2703ac852f2ffef33abf1cb13132a 100644
(file)
--- a/
drivers/mfd/lp8788-irq.c
+++ b/
drivers/mfd/lp8788-irq.c
@@
-175,6
+175,7
@@
int lp8788_irq_init(struct lp8788 *lp, int irq)
IRQF_TRIGGER_FALLING | IRQF_ONESHOT,
"lp8788-irq", irqd);
if (ret) {
+ irq_domain_remove(lp->irqdm);
dev_err(lp->dev, "failed to create a thread for IRQ_N\n");
return ret;
}
@@
-188,4
+189,6
@@
void lp8788_irq_exit(struct lp8788 *lp)
{
if (lp->irq)
free_irq(lp->irq, lp->irqdm);
+ if (lp->irqdm)
+ irq_domain_remove(lp->irqdm);
}