]> git.itanic.dy.fi Git - linux-stable/commitdiff
regulator: of: Fix refcount leak bug in of_get_regulation_constraints()
authorLiang He <windhl@126.com>
Fri, 15 Jul 2022 11:10:27 +0000 (19:10 +0800)
committerMark Brown <broonie@kernel.org>
Fri, 15 Jul 2022 11:35:14 +0000 (12:35 +0100)
We should call the of_node_put() for the reference returned by
of_get_child_by_name() which has increased the refcount.

Fixes: 40e20d68bb3f ("regulator: of: Add support for parsing regulator_state for suspend state")
Signed-off-by: Liang He <windhl@126.com>
Link: https://lore.kernel.org/r/20220715111027.391032-1-windhl@126.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/regulator/of_regulator.c

index f54d4f176882a7d84071de210cf53de601ff5a2e..e12b681c72e5ebfd8d68d2b4365fe74d0abfa7b0 100644 (file)
@@ -264,8 +264,12 @@ static int of_get_regulation_constraints(struct device *dev,
                }
 
                suspend_np = of_get_child_by_name(np, regulator_states[i]);
-               if (!suspend_np || !suspend_state)
+               if (!suspend_np)
                        continue;
+               if (!suspend_state) {
+                       of_node_put(suspend_np);
+                       continue;
+               }
 
                if (!of_property_read_u32(suspend_np, "regulator-mode",
                                          &pval)) {