diff options
author | Wei Yongjun <weiyongjun1@huawei.com> | 2016-10-29 16:13:52 +0000 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2016-10-31 09:23:45 +0100 |
commit | 09e258af4edaa10ee9aa3164923ee07d5863d637 (patch) | |
tree | 0c4c25acd576b2e9297c7fb2c6a798f09ed7a396 | |
parent | 550a9532b8093ef554947e5d24b469ffb1ff9930 (diff) | |
download | linux-stable-09e258af4edaa10ee9aa3164923ee07d5863d637.tar.gz linux-stable-09e258af4edaa10ee9aa3164923ee07d5863d637.tar.bz2 linux-stable-09e258af4edaa10ee9aa3164923ee07d5863d637.zip |
gpio: of: add missing of_node_put() in of_gpiochip_scan_gpios()
When terminating for_each_available_child_of_node() iteration
with break or return, of_node_put() should be used to prevent
stale device node references from being left behind.
This is detected by Coccinelle semantic patch.
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Reviewed-by: Vladimir Zapolskiy <vladimir_zapolskiy@mentor.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
-rw-r--r-- | drivers/gpio/gpiolib-of.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/gpio/gpiolib-of.c b/drivers/gpio/gpiolib-of.c index 3fa4e84b4327..5236966b1bdf 100644 --- a/drivers/gpio/gpiolib-of.c +++ b/drivers/gpio/gpiolib-of.c @@ -247,8 +247,10 @@ static int of_gpiochip_scan_gpios(struct gpio_chip *chip) continue; ret = gpiod_hog(desc, name, lflags, dflags); - if (ret < 0) + if (ret < 0) { + of_node_put(np); return ret; + } } return 0; |