cacheinfo: Use of_cpu_device_node_get instead cpu_dev->of_node
authorSudeep Holla <sudeep.holla@arm.com>
Mon, 4 Jul 2022 10:15:46 +0000 (11:15 +0100)
committerSudeep Holla <sudeep.holla@arm.com>
Mon, 4 Jul 2022 15:22:27 +0000 (16:22 +0100)
The of_cpu_device_node_get takes care of fetching the CPU'd device node
either from cached cpu_dev->of_node if cpu_dev is initialised or uses
of_get_cpu_node to parse and fetch node if cpu_dev isn't available yet.

Just use of_cpu_device_node_get instead of getting the cpu device first
and then using cpu_dev->of_node for two reasons:
1. There is no other use of cpu_dev and can be simplified
2. It enabled the use detect_cache_attributes and hence cache_setup_of_node
   much earlier before the CPUs are registered as devices.

Link: https://lore.kernel.org/r/20220704101605.1318280-3-sudeep.holla@arm.com
Tested-by: Ionela Voinescu <ionela.voinescu@arm.com>
Tested-by: Conor Dooley <conor.dooley@microchip.com>
Reviewed-by: Gavin Shan <gshan@redhat.com>
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
drivers/base/cacheinfo.c

index dad29622916145d3a155ae18b44b98f40ecfd532..b0bde272e2aea3dc5f36659f8851bfcee33d95ba 100644 (file)
@@ -14,7 +14,7 @@
 #include <linux/cpu.h>
 #include <linux/device.h>
 #include <linux/init.h>
-#include <linux/of.h>
+#include <linux/of_device.h>
 #include <linux/sched.h>
 #include <linux/slab.h>
 #include <linux/smp.h>
@@ -157,7 +157,6 @@ static int cache_setup_of_node(unsigned int cpu)
 {
        struct device_node *np;
        struct cacheinfo *this_leaf;
-       struct device *cpu_dev = get_cpu_device(cpu);
        struct cpu_cacheinfo *this_cpu_ci = get_cpu_cacheinfo(cpu);
        unsigned int index = 0;
 
@@ -166,11 +165,7 @@ static int cache_setup_of_node(unsigned int cpu)
                return 0;
        }
 
-       if (!cpu_dev) {
-               pr_err("No cpu device for CPU %d\n", cpu);
-               return -ENODEV;
-       }
-       np = cpu_dev->of_node;
+       np = of_cpu_device_node_get(cpu);
        if (!np) {
                pr_err("Failed to find cpu%d device node\n", cpu);
                return -ENOENT;