From: Masahiro Yamada Date: Tue, 14 Jun 2016 10:07:05 +0000 (+0900) Subject: gpio: of: move chip->of_gpio_n_cells checking to of_gpiochip_add() X-Git-Tag: v4.8-rc1~151^2~22 X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=commitdiff_plain;h=1020dfd15b2363bf652851c490a27a550070346e;p=linux.git gpio: of: move chip->of_gpio_n_cells checking to of_gpiochip_add() 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 Signed-off-by: Linus Walleij --- diff --git a/drivers/gpio/gpiolib-of.c b/drivers/gpio/gpiolib-of.c index 37a3221d67dc..a68e42dcce0a 100644 --- a/drivers/gpio/gpiolib-of.c +++ b/drivers/gpio/gpiolib-of.c @@ -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;