diff mbox series

of: base: Shift refcount decrement in of_find_last_cache_level()

Message ID 20220930144936.2882481-1-pierre.gondois@arm.com
State Accepted, archived
Headers show
Series of: base: Shift refcount decrement in of_find_last_cache_level() | expand

Checks

Context Check Description
robh/checkpatch success
robh/patch-applied fail build log

Commit Message

Pierre Gondois Sept. 30, 2022, 2:49 p.m. UTC
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(-)

Comments

Rob Herring (Arm) Oct. 3, 2022, 4:24 p.m. UTC | #1
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!
diff mbox series

Patch

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;
 }