From: Joel Schopp 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 Signed-off-by: Andrew Morton --- 25-akpm/arch/ppc64/kernel/smp.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletion(-) diff -puN arch/ppc64/kernel/smp.c~ppc64-smt-bugfix arch/ppc64/kernel/smp.c --- 25/arch/ppc64/kernel/smp.c~ppc64-smt-bugfix 2004-07-27 21:52:21.664476160 -0700 +++ 25-akpm/arch/ppc64/kernel/smp.c 2004-07-27 21:52:21.668475552 -0700 @@ -426,7 +426,11 @@ static inline void look_for_more_cpus(vo } 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 _