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)
committerShawn Guo <shawn.guo@linaro.org>
Thu, 23 Aug 2012 13:10:22 +0000 (21:10 +0800)
commitc944b0b9354ea06ffb0c8a7178949f1185f9f499
tree6971c668617734f27ba86364c189c9dbecf8811c
parent16339464c5d67d0536837fc5342c9c2432b80ae0
ARM: imx6: spin the cpu until hardware takes it down

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.

Cc: <stable@vger.kernel.org>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
arch/arm/mach-imx/hotplug.c