OSDN Git Service

gpio: Check if base is positive before calling gpio_is_valid()
authorGeert Uytterhoeven <geert+renesas@glider.be>
Mon, 17 Nov 2014 14:31:59 +0000 (15:31 +0100)
committerLinus Walleij <linus.walleij@linaro.org>
Thu, 27 Nov 2014 14:11:18 +0000 (15:11 +0100)
It doesn't make much sense to make some (possible expensive) calls to
gpio_is_valid() first, and to ignore the result if the base number is
negative. Check for a positive base number first.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Alexandre Courbot <acourbot@nvidia.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/gpiolib.c

index eb739a5..12d981a 100644 (file)
@@ -227,8 +227,8 @@ int gpiochip_add(struct gpio_chip *chip)
        unsigned        id;
        int             base = chip->base;
 
-       if ((!gpio_is_valid(base) || !gpio_is_valid(base + chip->ngpio - 1))
-                       && base >= 0) {
+       if (base >= 0 &&
+           (!gpio_is_valid(base) || !gpio_is_valid(base + chip->ngpio - 1))) {
                status = -EINVAL;
                goto fail;
        }