]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
pmdomain: ti-sci: Add missing of_node_put() for args.np
authorZhang Zekun <zhangzekun11@huawei.com>
Thu, 24 Oct 2024 03:04:41 +0000 (11:04 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 14 Dec 2024 18:50:48 +0000 (19:50 +0100)
[ Upstream commit afc2331ef81657493c074592c409dac7c3cb8ccc ]

of_parse_phandle_with_args() needs to call of_node_put() to decrement
the refcount of args.np. So, Add the missing of_node_put() in the loop.

Fixes: efa5c01cd7ee ("soc: ti: ti_sci_pm_domains: switch to use multiple genpds instead of one")
Signed-off-by: Zhang Zekun <zhangzekun11@huawei.com>
Reviewed-by: Dhruva Gole <d-gole@ti.com>
Message-ID: <20241024030442.119506-2-zhangzekun11@huawei.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/soc/ti/ti_sci_pm_domains.c

index 17984a7bffba58f1ef7916fb4b2fb2fa40ffe561..b21b152ed5d0f3db9134206f7f0d4b5c333bb104 100644 (file)
@@ -165,6 +165,7 @@ static int ti_sci_pm_domain_probe(struct platform_device *pdev)
                                break;
 
                        if (args.args_count >= 1 && args.np == dev->of_node) {
+                               of_node_put(args.np);
                                if (args.args[0] > max_id) {
                                        max_id = args.args[0];
                                } else {
@@ -192,7 +193,10 @@ static int ti_sci_pm_domain_probe(struct platform_device *pdev)
                                pm_genpd_init(&pd->pd, NULL, true);
 
                                list_add(&pd->node, &pd_provider->pd_list);
+                       } else {
+                               of_node_put(args.np);
                        }
+
                        index++;
                }
        }