[PATCH] cpufreq: ti: Implement scope-based cleanup in ti_cpufreq_match_node()

From: Shivani Gupta
Date: Mon Apr 22 2024 - 22:07:50 EST


This patch modifies the ti_cpufreq_match_node() function to utilize the
__free() cleanup handler for automatically releasing the device
node when it goes out of scope.

By moving the declaration to the initialization, the patch ensures that
the device node is properly managed throughout the function's scope,
thus eliminating the need for manual invocation of of_node_put().
This approach reduces the potential for memory leaks.

Suggested-by: Julia Lawall <julia.lawall@xxxxxxxx>
Signed-off-by: Shivani Gupta <shivani07g@xxxxxxxxx>
---
drivers/cpufreq/ti-cpufreq.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/cpufreq/ti-cpufreq.c b/drivers/cpufreq/ti-cpufreq.c
index 46c41e2ca727..714ed53753fa 100644
--- a/drivers/cpufreq/ti-cpufreq.c
+++ b/drivers/cpufreq/ti-cpufreq.c
@@ -347,12 +347,10 @@ static const struct of_device_id ti_cpufreq_of_match[] = {

static const struct of_device_id *ti_cpufreq_match_node(void)
{
- struct device_node *np;
+ struct device_node *np __free(device_node) = of_find_node_by_path("/");
const struct of_device_id *match;

- np = of_find_node_by_path("/");
match = of_match_node(ti_cpufreq_of_match, np);
- of_node_put(np);

return match;
}
--
2.34.1