]> git.ipfire.org Git - thirdparty/kernel/stable.git/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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 25 Aug 2022 09:15:02 +0000 (11:15 +0200)
[ Upstream commit 66efb665cd5ad69b27dca8571bf89fc6b9c628a4 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/regulator/of_regulator.c

index b255590aef36eeb79426553175074d8efede208e..b2bd7ee46c452918c2427ec626a81fd2d46dc059 100644 (file)
@@ -189,8 +189,12 @@ static void of_get_regulation_constraints(struct device_node *np,
                }
 
                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)) {