summaryrefslogtreecommitdiffstats
path: root/drivers/gpio/gpiolib-acpi.c
diff options
context:
space:
mode:
authorWei Yongjun <weiyongjun1@huawei.com>2016-10-29 18:11:57 +0200
committerLinus Walleij <linus.walleij@linaro.org>2016-10-31 09:18:29 +0100
commit1b6998c96ccc60a61bdb812b4a55866224ab9708 (patch)
tree6bf43da7a24c39664b8a9898f7686bc73075c28f /drivers/gpio/gpiolib-acpi.c
parentgpio: gpiolib-devprop: Check chip->parent pointer before dereferencing (diff)
downloadlinux-1b6998c96ccc60a61bdb812b4a55866224ab9708.tar.xz
linux-1b6998c96ccc60a61bdb812b4a55866224ab9708.zip
ACPI / gpio: add missing fwnode_handle_put() in acpi_gpiochip_scan_gpios()
fwnode_handle_put() should be used when terminating device_for_each_child_node() iteration with break or return 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> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/gpio/gpiolib-acpi.c')
-rw-r--r--drivers/gpio/gpiolib-acpi.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/gpio/gpiolib-acpi.c b/drivers/gpio/gpiolib-acpi.c
index 53266ef12008..aa879d5eaa19 100644
--- a/drivers/gpio/gpiolib-acpi.c
+++ b/drivers/gpio/gpiolib-acpi.c
@@ -922,6 +922,7 @@ static void acpi_gpiochip_scan_gpios(struct acpi_gpio_chip *achip)
ret = gpiod_hog(desc, name, lflags, dflags);
if (ret) {
dev_err(chip->parent, "Failed to hog GPIO\n");
+ fwnode_handle_put(fwnode);
return;
}
}