leds: tlc591xx: fix leak of device node iterator
authorTobias Jordan <kernel@cdqe.de>
Sat, 26 Sep 2020 00:51:17 +0000 (02:51 +0200)
committerPavel Machek <pavel@ucw.cz>
Wed, 30 Sep 2020 17:20:46 +0000 (19:20 +0200)
In one of the error paths of the for_each_child_of_node loop in
tlc591xx_probe, add missing call to of_node_put.

Fixes: 1ab4531ad132 ("leds: tlc591xx: simplify driver by using the managed led API")

Signed-off-by: Tobias Jordan <kernel@cdqe.de>
Reviewed-by: Marek BehĂșn <kabel@kernel.org>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Signed-off-by: Pavel Machek <pavel@ucw.cz>
drivers/leds/leds-tlc591xx.c

index f242713..5b9dfdf 100644 (file)
@@ -205,10 +205,12 @@ tlc591xx_probe(struct i2c_client *client,
                led->ldev.max_brightness = TLC591XX_MAX_BRIGHTNESS;
                err = devm_led_classdev_register_ext(dev, &led->ldev,
                                                     &init_data);
-               if (err < 0)
+               if (err < 0) {
+                       of_node_put(child);
                        return dev_err_probe(dev, err,
                                             "couldn't register LED %s\n",
                                             led->ldev.name);
+               }
        }
        return 0;
 }