On Mon, Jul 17, 2023 at 4:27 PM Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx> wrote: > > This allows to get rid of a call to pwmchip_remove() in the error path. There > is no .remove function for this driver, so this change fixes a resource leak > when a gpio-mvebu device is unbound. > > Fixes: 757642f9a584 ("gpio: mvebu: Add limited PWM support") > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx> > --- > Hello, > > Note that irq_domain_remove() also isn't called so there is another > resource leak introduced by 812d47889a8e ("gpio/mvebu: Use > irq_domain_add_linear") > > drivers/gpio/gpio-mvebu.c | 8 ++------ > 1 file changed, 2 insertions(+), 6 deletions(-) > > diff --git a/drivers/gpio/gpio-mvebu.c b/drivers/gpio/gpio-mvebu.c > index a68f682aec01..a35958e7adf6 100644 > --- a/drivers/gpio/gpio-mvebu.c > +++ b/drivers/gpio/gpio-mvebu.c > @@ -874,7 +874,7 @@ static int mvebu_pwm_probe(struct platform_device *pdev, > > spin_lock_init(&mvpwm->lock); > > - return pwmchip_add(&mvpwm->chip); > + return devm_pwmchip_add(dev, &mvpwm->chip); > } > > #ifdef CONFIG_DEBUG_FS > @@ -1243,8 +1243,7 @@ static int mvebu_gpio_probe(struct platform_device *pdev) > if (!mvchip->domain) { > dev_err(&pdev->dev, "couldn't allocate irq domain %s (DT).\n", > mvchip->chip.label); > - err = -ENODEV; > - goto err_pwm; > + return -ENODEV; > } > > err = irq_alloc_domain_generic_chips( > @@ -1296,9 +1295,6 @@ static int mvebu_gpio_probe(struct platform_device *pdev) > > err_domain: > irq_domain_remove(mvchip->domain); > -err_pwm: > - pwmchip_remove(&mvchip->mvpwm->chip); > - > return err; > } > > > base-commit: 06c2afb862f9da8dc5efa4b6076a0e48c3fbaaa5 > -- > 2.39.2 > Applied, thanks! Bart