diff options
author | Michael Ellerman <michael@ellerman.id.au> | 2006-02-16 14:13:53 +1100 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2006-02-20 12:03:37 +1100 |
commit | 496b7a5159b8366b003bbc17f8c4e27f69b6779e (patch) | |
tree | 7108aa506b80e8af73f23d6e3b520fdb20a0b808 /arch/powerpc/platforms/pseries/smp.c | |
parent | 8fca92705ef462f39e7db5a0f7100bcaae91bfd3 (diff) | |
download | linux-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.c | 2 |
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; |