summaryrefslogtreecommitdiffstats
path: root/net/l2tp
diff options
context:
space:
mode:
authorShawn Guo <shawn.guo@linaro.org>2013-10-28 16:37:12 +0800
committerShawn Guo <shawn.guo@linaro.org>2013-11-11 22:58:43 +0800
commitb6e23bb63f28f0a8ffa7cf9824fa48000c08f9b2 (patch)
tree1de9655ee19ed89d161a3ba4d44ec08ae0e43b06 /net/l2tp
parent9b3d423707c3b1f6633be1be7e959623e10c596b (diff)
downloadblackbird-op-linux-b6e23bb63f28f0a8ffa7cf9824fa48000c08f9b2.tar.gz
blackbird-op-linux-b6e23bb63f28f0a8ffa7cf9824fa48000c08f9b2.zip
ARM: imx: remove imx_src_prepare_restart() call
There is ~10% possibility that the following emergency restart command fails to reboot imx6q. $ echo b > /proc/sysrq-trigger The IMX restart routine mxc_restart() assumes that it will always run on primary core, and will call imx_src_prepare_restart() to disable secondary cores in order to get them come to online in the following boot. However, the assumption is only true for normal kernel_restart() case where migrate_to_reboot_cpu() will be called to migrate to primary core, but not necessarily true for emergency_restart() case. So when emergency_restart() calls into mxc_restart() on any secondary core, system will hang immediately once imx_src_prepare_restart() is called to disabled secondary cores. Since emergency_restart() is defined as a function that is safe to call in interrupt context, we cannot just call migrate_to_reboot_cpu() to fix the issue. Fortunately, we just found that the issue can be fixed at imx6q platform level. We used to call imx_src_prepare_restart() to disable all secondary cores before resetting hardware. Otherwise, the secondary will fail come to online in the reboot. However, we recently found that after commit 6050d18 (ARM: imx: reset core along with enable/disable operation) comes to play, we do not need to reset the secondary cores any more. That said, mxc_restart() now can run on any core to reboot the system, as long as we remove the imx_src_prepare_restart() call from mxc_restart(). So let's simply remove imx_src_prepare_restart() call to fix the above emergency restart failure. Reported-by: Jiada Wang <jiada_wang@mentor.com> Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Diffstat (limited to 'net/l2tp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud