Message ID | 20190626084407.27976-1-linus.walleij@linaro.org |
---|---|
State | Accepted |
Commit | 4c0a8899d9c215633ef79805c68b2566c775d43d |
Headers | show |
Series | [1/5] gpio: siox: Do not call gpiochip_remove() on errorpath | expand |
On Wed, Jun 26, 2019 at 10:44:03AM +0200, Linus Walleij wrote: > gpiochip_remove() was called on the errorpath if > gpiochip_add() failed: this is wrong, if the chip failed > to add it is not there so it should not be removed. > > Cc: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> > Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Does this warrant a Fixes: be8c8facc707 ("gpio: new driver to work with a 8x12 siox") ? Thanks Uwe -- Pengutronix e.K. | Uwe Kleine-König | Industrial Linux Solutions | http://www.pengutronix.de/ |
On Wed, Jun 26, 2019 at 11:12 AM Uwe Kleine-König <u.kleine-koenig@pengutronix.de> wrote: > On Wed, Jun 26, 2019 at 10:44:03AM +0200, Linus Walleij wrote: > > gpiochip_remove() was called on the errorpath if > > gpiochip_add() failed: this is wrong, if the chip failed > > to add it is not there so it should not be removed. > > > > Cc: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> > > Signed-off-by: Linus Walleij <linus.walleij@linaro.org> > > Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> > > Does this warrant a > > Fixes: be8c8facc707 ("gpio: new driver to work with a 8x12 siox") Thanks yeah I put the fixes in as a lowprio fix that goes in with the rest of the v5.3 patches. Yours, Linus Walleij
diff --git a/drivers/gpio/gpio-siox.c b/drivers/gpio/gpio-siox.c index fb4e318ab028..0b4450118865 100644 --- a/drivers/gpio/gpio-siox.c +++ b/drivers/gpio/gpio-siox.c @@ -243,17 +243,14 @@ static int gpio_siox_probe(struct siox_device *sdevice) if (ret) { dev_err(&sdevice->dev, "Failed to register gpio chip (%d)\n", ret); - goto err_gpiochip; + return ret; } ret = gpiochip_irqchip_add(&ddata->gchip, &ddata->ichip, 0, handle_level_irq, IRQ_TYPE_EDGE_RISING); - if (ret) { + if (ret) dev_err(&sdevice->dev, "Failed to register irq chip (%d)\n", ret); -err_gpiochip: - gpiochip_remove(&ddata->gchip); - } return ret; }
gpiochip_remove() was called on the errorpath if gpiochip_add() failed: this is wrong, if the chip failed to add it is not there so it should not be removed. Cc: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> --- drivers/gpio/gpio-siox.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) -- 2.20.1