aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc
diff options
context:
space:
mode:
authorMichael Ellerman <mpe@ellerman.id.au>2024-02-15 00:14:04 +1100
committerMichael Ellerman <mpe@ellerman.id.au>2024-02-15 00:14:04 +1100
commitdca79603fbc592ec7ea8bd7ba274052d3984e882 (patch)
tree3573fae16216f3a93079dee1919fd65409164784 /arch/powerpc
parent777f81f0a9c780a6443bcf2c7785f0cc2e87c1ef (diff)
downloadlinux-dca79603fbc592ec7ea8bd7ba274052d3984e882.tar.gz
powerpc/smp: Lookup avail once per device tree node
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> Link: https://msgid.link/20231229120107.2281153-3-mpe@ellerman.id.au
Diffstat (limited to 'arch/powerpc')
-rw-r--r--arch/powerpc/kernel/setup-common.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/arch/powerpc/kernel/setup-common.c b/arch/powerpc/kernel/setup-common.c
index 9b142b9d5187b..375bade1cf090 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]);