aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel
diff options
context:
space:
mode:
authorkerstin jonsson <kerstin.jonsson@ericsson.com>2011-05-17 19:57:11 -0400
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2011-05-18 23:09:22 -0400
commitc560bbceaf6b06e52f1ef20131b76a3fdc0a2c19 (patch)
tree2480c5f8ea7ce28b812da9b47f0de572021f308a /arch/powerpc/kernel
parent35d215fbe4f4d3569f2adabd8d53510a26ecb9c5 (diff)
powerpc/4xx: Fix regression in SMP on 476
commit c56e58537d504706954a06570b4034c04e5b7500 breaks SMP support in PPC_47x chip. secondary_ti must be set to current thread info before callin kick_cpu or else start_secondary_47x will jump into void when trying to return to c-code. In the current setup secondary_ti is initialized before the CPU idle task is started and only the boot core will start. I am not sure this is the correct solution, but it makes SMP possible in my chip. Note! The HOTPLUG support probably need some fixing to, There is no trampoline code available in head_44x.S - start_secondary_resume? Signed-off-by: Kerstin Jonsson <kerstin.jonsson@ericsson.com> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/kernel')
-rw-r--r--arch/powerpc/kernel/smp.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c
index cbdbb14be4b0..f2dcab7aadc8 100644
--- a/arch/powerpc/kernel/smp.c
+++ b/arch/powerpc/kernel/smp.c
@@ -410,8 +410,6 @@ int __cpuinit __cpu_up(unsigned int cpu)
410{ 410{
411 int rc, c; 411 int rc, c;
412 412
413 secondary_ti = current_set[cpu];
414
415 if (smp_ops == NULL || 413 if (smp_ops == NULL ||
416 (smp_ops->cpu_bootable && !smp_ops->cpu_bootable(cpu))) 414 (smp_ops->cpu_bootable && !smp_ops->cpu_bootable(cpu)))
417 return -EINVAL; 415 return -EINVAL;
@@ -421,6 +419,8 @@ int __cpuinit __cpu_up(unsigned int cpu)
421 if (rc) 419 if (rc)
422 return rc; 420 return rc;
423 421
422 secondary_ti = current_set[cpu];
423
424 /* Make sure callin-map entry is 0 (can be leftover a CPU 424 /* Make sure callin-map entry is 0 (can be leftover a CPU
425 * hotplug 425 * hotplug
426 */ 426 */