Message ID | 800564ff82277544269add84bf78a5321e1090ed.1629472813.git.christophe.jaillet@wanadoo.fr |
---|---|
State | Accepted |
Commit | 555bda42b0c1a5ffb72d3227c043e8afde778f1f |
Headers | show |
Series | [1/3] gpio: mpc8xxx: Fix a resources leak in the error handling path of 'mpc8xxx_probe()' | expand |
On Fri, Aug 20, 2021 at 5:37 PM Christophe JAILLET <christophe.jaillet@wanadoo.fr> wrote: > > Commit 698b8eeaed72 ("gpio/mpc8xxx: change irq handler from chained to normal") > has introduced a new 'goto err;' at the very end of the function, but has > not updated the error handling path accordingly. > > Add the now missing 'irq_domain_remove()' call which balances a previous > 'irq_domain_create_linear() call. > > Fixes: 698b8eeaed72 ("gpio/mpc8xxx: change irq handler from chained to normal") > Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> > --- > Is the 'irq_set_chained_handler_and_data()' of the remove function also > needed here? > --- > drivers/gpio/gpio-mpc8xxx.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/gpio/gpio-mpc8xxx.c b/drivers/gpio/gpio-mpc8xxx.c > index 67dc38976ab6..241bcc80612e 100644 > --- a/drivers/gpio/gpio-mpc8xxx.c > +++ b/drivers/gpio/gpio-mpc8xxx.c > @@ -416,6 +416,8 @@ static int mpc8xxx_probe(struct platform_device *pdev) > > return 0; > err: > + if (mpc8xxx_gc->irq) > + irq_domain_remove(mpc8xxx_gc->irq); > iounmap(mpc8xxx_gc->regs); > return ret; > } > -- > 2.30.2 > Applied, thanks! Bart
diff --git a/drivers/gpio/gpio-mpc8xxx.c b/drivers/gpio/gpio-mpc8xxx.c index 67dc38976ab6..241bcc80612e 100644 --- a/drivers/gpio/gpio-mpc8xxx.c +++ b/drivers/gpio/gpio-mpc8xxx.c @@ -416,6 +416,8 @@ static int mpc8xxx_probe(struct platform_device *pdev) return 0; err: + if (mpc8xxx_gc->irq) + irq_domain_remove(mpc8xxx_gc->irq); iounmap(mpc8xxx_gc->regs); return ret; }
Commit 698b8eeaed72 ("gpio/mpc8xxx: change irq handler from chained to normal") has introduced a new 'goto err;' at the very end of the function, but has not updated the error handling path accordingly. Add the now missing 'irq_domain_remove()' call which balances a previous 'irq_domain_create_linear() call. Fixes: 698b8eeaed72 ("gpio/mpc8xxx: change irq handler from chained to normal") Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> --- Is the 'irq_set_chained_handler_and_data()' of the remove function also needed here? --- drivers/gpio/gpio-mpc8xxx.c | 2 ++ 1 file changed, 2 insertions(+)