diff options
-rw-r--r-- | arch/arm/mach-highbank/hotplug.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-highbank/platsmp.c | 12 |
2 files changed, 2 insertions, 12 deletions
diff --git a/arch/arm/mach-highbank/hotplug.c b/arch/arm/mach-highbank/hotplug.c index 7b60faccd551..f30c52843396 100644 --- a/arch/arm/mach-highbank/hotplug.c +++ b/arch/arm/mach-highbank/hotplug.c | |||
@@ -30,7 +30,7 @@ void __ref highbank_cpu_die(unsigned int cpu) | |||
30 | { | 30 | { |
31 | flush_cache_all(); | 31 | flush_cache_all(); |
32 | 32 | ||
33 | highbank_set_cpu_jump(cpu, secondary_startup); | 33 | highbank_set_cpu_jump(cpu, phys_to_virt(0)); |
34 | highbank_set_core_pwr(); | 34 | highbank_set_core_pwr(); |
35 | 35 | ||
36 | cpu_do_idle(); | 36 | cpu_do_idle(); |
diff --git a/arch/arm/mach-highbank/platsmp.c b/arch/arm/mach-highbank/platsmp.c index 1129957f6c1d..4ecc864ac8b9 100644 --- a/arch/arm/mach-highbank/platsmp.c +++ b/arch/arm/mach-highbank/platsmp.c | |||
@@ -32,6 +32,7 @@ static void __cpuinit highbank_secondary_init(unsigned int cpu) | |||
32 | 32 | ||
33 | static int __cpuinit highbank_boot_secondary(unsigned int cpu, struct task_struct *idle) | 33 | static int __cpuinit highbank_boot_secondary(unsigned int cpu, struct task_struct *idle) |
34 | { | 34 | { |
35 | highbank_set_cpu_jump(cpu, secondary_startup); | ||
35 | gic_raise_softirq(cpumask_of(cpu), 0); | 36 | gic_raise_softirq(cpumask_of(cpu), 0); |
36 | return 0; | 37 | return 0; |
37 | } | 38 | } |
@@ -61,19 +62,8 @@ static void __init highbank_smp_init_cpus(void) | |||
61 | 62 | ||
62 | static void __init highbank_smp_prepare_cpus(unsigned int max_cpus) | 63 | static void __init highbank_smp_prepare_cpus(unsigned int max_cpus) |
63 | { | 64 | { |
64 | int i; | ||
65 | |||
66 | if (scu_base_addr) | 65 | if (scu_base_addr) |
67 | scu_enable(scu_base_addr); | 66 | scu_enable(scu_base_addr); |
68 | |||
69 | /* | ||
70 | * Write the address of secondary startup into the jump table | ||
71 | * The cores are in wfi and wait until they receive a soft interrupt | ||
72 | * and a non-zero value to jump to. Then the secondary CPU branches | ||
73 | * to this address. | ||
74 | */ | ||
75 | for (i = 1; i < max_cpus; i++) | ||
76 | highbank_set_cpu_jump(i, secondary_startup); | ||
77 | } | 67 | } |
78 | 68 | ||
79 | struct smp_operations highbank_smp_ops __initdata = { | 69 | struct smp_operations highbank_smp_ops __initdata = { |