ARM: imx6: spin the cpu until hardware takes it down
authorShawn Guo <shawn.guo@linaro.org>
Sat, 18 Aug 2012 06:27:32 +0000 (14:27 +0800)
committerBen Hutchings <ben@decadent.org.uk>
Wed, 19 Sep 2012 14:04:31 +0000 (15:04 +0100)
commit63aa21efee43ad4d6ae0504f333e4aaad42183bd
tree5a65b26b5d94e31bfb02d96340c3edf384b42b60
parent3fd4e8f0ecd916f761459f0dc7174940ce3a0b99
ARM: imx6: spin the cpu until hardware takes it down

commit c944b0b9354ea06ffb0c8a7178949f1185f9f499 upstream.

Though commit 602bf40 (ARM: imx6: exit coherency when shutting down
a cpu) improves the stability of imx6q cpu hotplug a lot, there are
still hangs seen with a more stressful hotplug testing.

It's expected that once imx_enable_cpu(cpu, false) is called, the cpu
will be taken down by hardware immediately, and the code after that
will not get any chance to execute.  However, this is not always the
case from the testing.  The cpu could possibly be alive for a few
cycles before hardware actually takes it down.  So rather than letting
cpu execute some code that could cause a hang in these cycles, let's
make the cpu spin there and wait for hardware to take it down.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
arch/arm/mach-imx/hotplug.c