The of_device_is_available() check only needs to be done once per device
node, there's no need to repeat it for each thread. Move it out of the
loop.

Signed-off-by: Michael Ellerman <m...@ellerman.id.au>
---
 arch/powerpc/kernel/setup-common.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/arch/powerpc/kernel/setup-common.c 
b/arch/powerpc/kernel/setup-common.c
index ec02f9d8f55d..ff7616023ade 100644
--- a/arch/powerpc/kernel/setup-common.c
+++ b/arch/powerpc/kernel/setup-common.c
@@ -468,17 +468,16 @@ void __init smp_setup_cpu_maps(void)
 
                nthreads = len / sizeof(int);
 
+               bool avail = of_device_is_available(dn);
+               if (!avail)
+                       avail = !of_property_match_string(dn,
+                                       "enable-method", "spin-table");
+
                for (j = 0; j < nthreads && cpu < nr_cpu_ids; j++) {
-                       bool avail;
 
                        DBG("    thread %d -> cpu %d (hard id %d)\n",
                            j, cpu, be32_to_cpu(intserv[j]));
 
-                       avail = of_device_is_available(dn);
-                       if (!avail)
-                               avail = !of_property_match_string(dn,
-                                               "enable-method", "spin-table");
-
                        set_cpu_present(cpu, avail);
                        set_cpu_possible(cpu, true);
                        cpu_to_phys_id[cpu] = be32_to_cpu(intserv[j]);
-- 
2.43.0

Reply via email to