gpio: of: move chip->of_gpio_n_cells checking to of_gpiochip_add()
authorMasahiro Yamada <yamada.masahiro@socionext.com>
Tue, 14 Jun 2016 10:07:05 +0000 (19:07 +0900)
committerLinus Walleij <linus.walleij@linaro.org>
Thu, 23 Jun 2016 09:07:11 +0000 (11:07 +0200)
Do this sanity check only once when the gpio_chip is added
rather than every time gpio-hog is handled.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/gpiolib-of.c

index 37a3221d67dc48baef318f387b8954b778d103c0..a68e42dcce0a2b11d1246bf016a9f02d400455c2 100644 (file)
@@ -155,7 +155,7 @@ static struct gpio_desc *of_parse_own_gpio(struct device_node *np,
        if (ret)
                return ERR_PTR(ret);
 
-       if (tmp > MAX_PHANDLE_ARGS || tmp != chip->of_gpio_n_cells)
+       if (tmp != chip->of_gpio_n_cells)
                return ERR_PTR(-EINVAL);
 
        gpiospec.np = chip_np;
@@ -486,6 +486,9 @@ int of_gpiochip_add(struct gpio_chip *chip)
                chip->of_xlate = of_gpio_simple_xlate;
        }
 
+       if (chip->of_gpio_n_cells > MAX_PHANDLE_ARGS)
+               return -EINVAL;
+
        status = of_gpiochip_add_pin_range(chip);
        if (status)
                return status;