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 <ker...@cdqe.de>
---
v2: rebased to Pavel's for-next branch

 drivers/leds/leds-tlc591xx.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/leds/leds-tlc591xx.c b/drivers/leds/leds-tlc591xx.c
index f24271337bd8..5b9dfdf743ec 100644
--- a/drivers/leds/leds-tlc591xx.c
+++ b/drivers/leds/leds-tlc591xx.c
@@ -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;
 }
-- 
2.20.1

Reply via email to