From: Liang He Date: Fri, 15 Jul 2022 11:10:27 +0000 (+0800) Subject: regulator: of: Fix refcount leak bug in of_get_regulation_constraints() X-Git-Tag: v5.15.73~1587 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c9df8ff290097aabd5c9200f7f729b0813d37b19;p=platform%2Fkernel%2Flinux-rpi.git regulator: of: Fix refcount leak bug in of_get_regulation_constraints() [ 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 Link: https://lore.kernel.org/r/20220715111027.391032-1-windhl@126.com Signed-off-by: Mark Brown Signed-off-by: Sasha Levin --- diff --git a/drivers/regulator/of_regulator.c b/drivers/regulator/of_regulator.c index f54d4f1..e12b681 100644 --- a/drivers/regulator/of_regulator.c +++ b/drivers/regulator/of_regulator.c @@ -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)) {