diff --git a/arch/arm/mach-highbank/hotplug.c b/arch/arm/mach-highbank/hotplug.c
index 35dd42e21685..a019e4e86e51 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));
+
+ flush_cache_louis();
highbank_set_core_pwr();
- cpu_do_idle();
-
- /* We should never return from idle */
- panic("highbank: cpu %d unexpectedly exit from shutdown\n", cpu);
+ while (1)
+ cpu_do_idle();
}