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();
}