2022-09-30 15:03:04

by Pierre Gondois

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

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 <[email protected]>
---
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


2022-10-03 16:42:10

by Rob Herring (Arm)

[permalink] [raw]
Subject: Re: [PATCH] of: base: Shift refcount decrement in of_find_last_cache_level()

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 <[email protected]>
> ---
> drivers/of/base.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>

Applied, thanks!