[PATCH] ppc64 SMT bugfix
From: Joel Schopp
Date: Tue Jul 27 2004 - 18:37:49 EST
This patch is fairly straightforward. maxcpus should be per SMT thread
and not per physical processor. SUSE picked this up back in May (was
discussed on ppc64 mailing list) and has had no trouble with it.
Signed-off-by: Joel Schopp <jschopp@xxxxxxxxxxxxxx>
diff -Nru a/arch/ppc64/kernel/smp.c b/arch/ppc64/kernel/smp.c
--- a/arch/ppc64/kernel/smp.c Tue Jul 27 13:44:45 2004
+++ b/arch/ppc64/kernel/smp.c Tue Jul 27 13:44:45 2004
@@ -422,7 +422,11 @@
}
maxcpus = ireg[num_addr_cell + num_size_cell];
- /* DRENG need to account for threads here too */
+
+ /* Double maxcpus for processors which have SMT capability */
+ if (cur_cpu_spec->cpu_features & CPU_FTR_SMT)
+ maxcpus *= 2;
+
if (maxcpus > NR_CPUS) {
printk(KERN_WARNING