gpiolib: Fix inverted check in gpiochip_remove()
authorGeert Uytterhoeven <geert+renesas@glider.be>
Mon, 2 Mar 2020 08:24:48 +0000 (09:24 +0100)
committerLinus Walleij <linus.walleij@linaro.org>
Tue, 3 Mar 2020 12:33:02 +0000 (13:33 +0100)
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@glider.be>
Link: https://lore.kernel.org/r/20200302082448.11795-1-geert+renesas@glider.be
Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/gpiolib.c

index 2253ab49534914cbe39b210b1ea00198f8c393f0..0879731caf257bd7ccca743d40e47385b4c421d5 100644 (file)
@@ -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)
                dev_crit(&gdev->dev,
                         "REMOVING GPIOCHIP WITH GPIOS STILL REQUESTED\n");