summaryrefslogtreecommitdiffstats
path: root/arch/powerpc/platforms/pseries/smp.c
diff options
context:
space:
mode:
authorMichael Ellerman <michael@ellerman.id.au>2006-02-16 14:13:53 +1100
committerPaul Mackerras <paulus@samba.org>2006-02-20 12:03:37 +1100
commit496b7a5159b8366b003bbc17f8c4e27f69b6779e (patch)
tree7108aa506b80e8af73f23d6e3b520fdb20a0b808 /arch/powerpc/platforms/pseries/smp.c
parent8fca92705ef462f39e7db5a0f7100bcaae91bfd3 (diff)
downloadlinux-496b7a5159b8366b003bbc17f8c4e27f69b6779e.tar.gz
linux-496b7a5159b8366b003bbc17f8c4e27f69b6779e.tar.bz2
linux-496b7a5159b8366b003bbc17f8c4e27f69b6779e.zip
[PATCH] powerpc: Fix bug in spinup of renumbered secondary threads
If the logical and physical cpu ids of a secondary thread don't match, we will fail to spin the thread up on pSeries machines due to a bug in pseries/smp.c We call the RTAS "start-cpu" method with the physical cpu id, the address of pSeries_secondary_smp_init and the value to pass that function in r3. Currently we pass "lcpu", the logical cpu id, but pSeries_secondary_smp_init expects the physical cpu id in r3. We should be passing pcpu instead. Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/powerpc/platforms/pseries/smp.c')
-rw-r--r--arch/powerpc/platforms/pseries/smp.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/powerpc/platforms/pseries/smp.c b/arch/powerpc/platforms/pseries/smp.c
index 8e6b1ed1396e..8d710af50756 100644
--- a/arch/powerpc/platforms/pseries/smp.c
+++ b/arch/powerpc/platforms/pseries/smp.c
@@ -292,7 +292,7 @@ static inline int __devinit smp_startup_cpu(unsigned int lcpu)
if (start_cpu == RTAS_UNKNOWN_SERVICE)
return 1;
- status = rtas_call(start_cpu, 3, 1, NULL, pcpu, start_here, lcpu);
+ status = rtas_call(start_cpu, 3, 1, NULL, pcpu, start_here, pcpu);
if (status != 0) {
printk(KERN_ERR "start-cpu failed: %i\n", status);
return 0;