Fix error paths in for_each_child_of_node loops that were missing an
of_node_put call.

Fixes: 92a81562e695 ("leds: lp55xx: Add multicolor framework support to
lp55xx")
Signed-off-by: Tobias Jordan <[email protected]>
---
 drivers/leds/leds-lp55xx-common.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/leds/leds-lp55xx-common.c 
b/drivers/leds/leds-lp55xx-common.c
index 56210f4ad919..f8b55cfd21ef 100644
--- a/drivers/leds/leds-lp55xx-common.c
+++ b/drivers/leds/leds-lp55xx-common.c
@@ -614,8 +614,10 @@ static int lp55xx_parse_multi_led(struct device_node *np,
        for_each_child_of_node(np, child) {
                ret = lp55xx_parse_multi_led_child(child, cfg, child_number,
                                                   num_colors);
-               if (ret)
+               if (ret) {
+                       of_node_put(child);
                        return ret;
+               }
                num_colors++;
        }
 
@@ -681,8 +683,10 @@ struct lp55xx_platform_data 
*lp55xx_of_populate_pdata(struct device *dev,
 
        for_each_child_of_node(np, child) {
                ret = lp55xx_parse_logical_led(child, cfg, i);
-               if (ret)
+               if (ret) {
+                       of_node_put(child);
                        return ERR_PTR(-EINVAL);
+               }
                i++;
        }
 
-- 
2.20.1

Reply via email to