| From ad4e1a7caf937ad395ced585ca85a7d14395dc80 Mon Sep 17 00:00:00 2001 |
| From: Haojian Zhuang <haojian.zhuang@linaro.org> |
| Date: Sun, 17 Feb 2013 19:42:48 +0800 |
| Subject: gpio: fix wrong checking condition for gpio range |
| |
| From: Haojian Zhuang <haojian.zhuang@linaro.org> |
| |
| commit ad4e1a7caf937ad395ced585ca85a7d14395dc80 upstream. |
| |
| If index++ calculates from 0, the checking condition of "while |
| (index++)" fails & it doesn't check any more. It doesn't follow |
| the loop that used at here. |
| |
| Replace it by endless loop at here. Then it keeps parsing |
| "gpio-ranges" property until it ends. |
| |
| Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org> |
| Reviewed-by: Linus Walleij <linus.walleij@linaro.org> |
| Signed-off-by: Linus Walleij <linus.walleij@linaro.org> |
| Signed-off-by: Jonghwan Choi <jhbird.choi@samsung.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/gpio/gpiolib-of.c | 5 ++--- |
| 1 file changed, 2 insertions(+), 3 deletions(-) |
| |
| --- a/drivers/gpio/gpiolib-of.c |
| +++ b/drivers/gpio/gpiolib-of.c |
| @@ -228,7 +228,7 @@ static void of_gpiochip_add_pin_range(st |
| if (!np) |
| return; |
| |
| - do { |
| + for (;; index++) { |
| ret = of_parse_phandle_with_args(np, "gpio-ranges", |
| "#gpio-range-cells", index, &pinspec); |
| if (ret) |
| @@ -257,8 +257,7 @@ static void of_gpiochip_add_pin_range(st |
| |
| if (ret) |
| break; |
| - |
| - } while (index++); |
| + } |
| } |
| |
| #else |