aboutsummaryrefslogtreecommitdiff
path: root/arch/arm/mach-highbank/hotplug.c
diff options
context:
space:
mode:
authorRob Herring <rob.herring@calxeda.com>2012-12-30 10:15:05 -0600
committerOlof Johansson <olof@lixom.net>2013-01-07 21:08:25 -0800
commit0b3455a71e38b9c8cf4c2e791c909618c0a72078 (patch)
treecb74263e3414f9fa4dcf7d50e41aee834723ebb7 /arch/arm/mach-highbank/hotplug.c
parentc05ee88f6f20746aff938a85ef49e777ef4c6513 (diff)
downloadlinaro-lsk-0b3455a71e38b9c8cf4c2e791c909618c0a72078.tar.gz
ARM: highbank: fix secondary boot and hotplug
With commit 384a290 (ARM: gic: use a private mapping for CPU target interfaces), wake-up IPIs now go to all cores as the gic cpu interface numbering may not follow core numbering. This broke secondary boot on highbank since the boot address was already set for all secondary cores, this caused all cores to boot before the kernel was ready. Fix this by moving the setting of the jump address to highbank_boot_secondary instead of highbank_smp_prepare_cpus and highbank_cpu_die. Also, clear the address when we boot. This prevents cores from booting before they are actually triggered and is also necessary to get suspend/resume to work. Signed-off-by: Rob Herring <rob.herring@calxeda.com> Cc: Nicolas Pitre <nicolas.pitre@linaro.org> Signed-off-by: Olof Johansson <olof@lixom.net>
Diffstat (limited to 'arch/arm/mach-highbank/hotplug.c')
-rw-r--r--arch/arm/mach-highbank/hotplug.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/arm/mach-highbank/hotplug.c b/arch/arm/mach-highbank/hotplug.c
index 7b60faccd55..f30c5284339 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)
{
flush_cache_all();
- highbank_set_cpu_jump(cpu, secondary_startup);
+ highbank_set_cpu_jump(cpu, phys_to_virt(0));
highbank_set_core_pwr();
cpu_do_idle();