Messages in this thread Patch in this message | | | From | Liang He <> | Subject | [PATCH] regulator: of: Fix refcount leak bug in of_get_regulation_constraints() | Date | Fri, 15 Jul 2022 19:10:27 +0800 |
| |
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> --- I think no matter what the 'suspend_state' value is, it should call of_node_put() when 'suspend_np' is not NULL as it will be replaced in 'continue' to next loop.
drivers/regulator/of_regulator.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
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)) { -- 2.25.1
| |