[PATCH] of: base: Shift refcount decrement in of_find_last_cache_level()

Pierre Gondois posted 1 patch 1 year, 6 months ago
drivers/of/base.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
[PATCH] of: base: Shift refcount decrement in of_find_last_cache_level()
Posted by Pierre Gondois 1 year, 6 months ago
Currently, of_find_next_cache_node() and of_property_read_u32()
are called on objects after their refcount have been decremented.
Re-order the calls to decrement the refcount after the function
calls.

Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
---
 drivers/of/base.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/of/base.c b/drivers/of/base.c
index 7fa960bd3df1..227819768c6e 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -2088,12 +2088,13 @@ int of_find_last_cache_level(unsigned int cpu)
 	struct device_node *prev = NULL, *np = of_cpu_device_node_get(cpu);
 
 	while (np) {
+		of_node_put(prev);
 		prev = np;
-		of_node_put(np);
 		np = of_find_next_cache_node(np);
 	}
 
 	of_property_read_u32(prev, "cache-level", &cache_level);
+	of_node_put(prev);
 
 	return cache_level;
 }
-- 
2.25.1
Re: [PATCH] of: base: Shift refcount decrement in of_find_last_cache_level()
Posted by Rob Herring 1 year, 6 months ago
On Fri, 30 Sep 2022 16:49:36 +0200, Pierre Gondois wrote:
> Currently, of_find_next_cache_node() and of_property_read_u32()
> are called on objects after their refcount have been decremented.
> Re-order the calls to decrement the refcount after the function
> calls.
> 
> Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
> ---
>  drivers/of/base.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 

Applied, thanks!