diff mbox series

[RFC,3/5] powerpc/smp: Lookup avail once per device tree node

Message ID 20231229120107.2281153-3-mpe@ellerman.id.au (mailing list archive)
State Accepted
Commit dca79603fbc592ec7ea8bd7ba274052d3984e882
Headers show
Series [RFC,1/5] powerpc/smp: Adjust nr_cpu_ids to cover all threads of a core | expand

Commit Message

Michael Ellerman Dec. 29, 2023, 12:01 p.m. UTC
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 <mpe@ellerman.id.au>
---
 arch/powerpc/kernel/setup-common.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)
diff mbox series

Patch

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]);