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

From: Pierre Gondois
Date: Fri Sep 30 2022 - 10:52:52 EST


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@xxxxxxx>
---
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