On Mon, Mar 02, 2020 at 09:24:48AM +0100, Geert Uytterhoeven wrote: > The optimization to check for requested lines actually optimized for the > uncomon error case, where one of the GPIO lines is still in use. > Hence the error message must be printed when the loop is terminated > early, not when it went through all available GPIO lines. > > Fixes: 869233f81337bfb3 ("gpiolib: Optimize gpiochip_remove() when check for requested line") > Signed-off-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx> > --- > Noticed by review, tested by creating and destroying an otherwise unused > GPIO aggregator, which triggers: > > gpio gpiochip8: REMOVING GPIOCHIP WITH GPIOS STILL REQUESTED Thank you! Acked-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> Linus, see below. > --- > drivers/gpio/gpiolib.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c > index 4e78bdc2739693c3..6180cf84fab7ce5e 100644 > --- a/drivers/gpio/gpiolib.c > +++ b/drivers/gpio/gpiolib.c > @@ -1823,7 +1823,7 @@ void gpiochip_remove(struct gpio_chip *chip) > } > spin_unlock_irqrestore(&gpio_lock, flags); > > - if (i == gdev->ngpio) > + if (i != gdev->ngpio) I prefer more explicit <. I had sent a patch (before I noticed this), so it's up to Linus which one to choose. > dev_crit(&gdev->dev, > "REMOVING GPIOCHIP WITH GPIOS STILL REQUESTED\n"); > > -- > 2.17.1 > -- With Best Regards, Andy Shevchenko