aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPierre Gondois <pierre.gondois@arm.com>2022-09-30 16:49:36 +0200
committerRob Herring <robh@kernel.org>2022-10-03 11:21:37 -0500
commit7a7f58575483a74db4cc2c1e37f21ddda057083d (patch)
tree0f4adb491181fafdaed5658b84395c77e8e84aa2
parentdt-bindings: leds: Add MediaTek MT6370 flashlight (diff)
downloadlinux-dev-7a7f58575483a74db4cc2c1e37f21ddda057083d.tar.xz
linux-dev-7a7f58575483a74db4cc2c1e37f21ddda057083d.zip
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 <pierre.gondois@arm.com> Link: https://lore.kernel.org/r/20220930144936.2882481-1-pierre.gondois@arm.com Signed-off-by: Rob Herring <robh@kernel.org>
-rw-r--r--drivers/of/base.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/of/base.c b/drivers/of/base.c
index 5e7c11ca1007..209953c4f6c6 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;
}