diff options
author | Liang He <windhl@126.com> | 2022-07-15 14:10:27 +0300 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2022-07-15 14:35:14 +0300 |
commit | 66efb665cd5ad69b27dca8571bf89fc6b9c628a4 (patch) | |
tree | 7bfa1e95e78b12b072bec87540e5fffa92598332 /drivers/regulator | |
parent | 91de5eb17c100b3ab9192c36d99761e9da8536da (diff) | |
download | linux-66efb665cd5ad69b27dca8571bf89fc6b9c628a4.tar.xz |
regulator: of: Fix refcount leak bug in of_get_regulation_constraints()
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>
Diffstat (limited to 'drivers/regulator')
-rw-r--r-- | drivers/regulator/of_regulator.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/regulator/of_regulator.c b/drivers/regulator/of_regulator.c index f54d4f176882..e12b681c72e5 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)) { |