diff --git a/arch/arm/mach-highbank/hotplug.c b/arch/arm/mach-highbank/hotplug.c index 35dd42e216856a03047635ddc249e75b5201fd69..a019e4e86e517b74826d6aca3f4f14e6e17b0c4a 100644 --- a/arch/arm/mach-highbank/hotplug.c +++ b/arch/arm/mach-highbank/hotplug.c @@ -14,6 +14,7 @@ * this program. If not, see . */ #include +#include #include "core.h" #include "sysregs.h" @@ -27,10 +28,10 @@ extern void secondary_startup(void); void __ref highbank_cpu_die(unsigned int cpu) { highbank_set_cpu_jump(cpu, phys_to_virt(0)); - highbank_set_core_pwr(); - cpu_do_idle(); + flush_cache_louis(); + highbank_set_core_pwr(); - /* We should never return from idle */ - panic("highbank: cpu %d unexpectedly exit from shutdown\n", cpu); + while (1) + cpu_do_idle(); }