aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShawn Guo2012-10-04 17:12:23 -0700
committerLinus Torvalds2012-10-06 03:04:47 +0900
commitf96972f2dc6365421cf2366ebd61ee4cf060c8d5 (patch)
tree8a8aa56a74371a8b39f55184631ea34030a147a4
parent9f6547a3209b78689ab8183630df87ca5e13fec0 (diff)
kernel/sys.c: call disable_nonboot_cpus() in kernel_restart()
As kernel_power_off() calls disable_nonboot_cpus(), we may also want to have kernel_restart() call disable_nonboot_cpus(). Doing so can help machines that require boot cpu be the last alive cpu during reboot to survive with kernel restart. This fixes one reboot issue seen on imx6q (Cortex-A9 Quad). The machine requires that the restart routine be run on the primary cpu rather than secondary ones. Otherwise, the secondary core running the restart routine will fail to come to online after reboot. Signed-off-by: Shawn Guo <shawn.guo@linaro.org> Cc: <stable@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--kernel/sys.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/kernel/sys.c b/kernel/sys.c
index f9492284e5d2..fdad206165d0 100644
--- a/kernel/sys.c
+++ b/kernel/sys.c
@@ -368,6 +368,7 @@ EXPORT_SYMBOL(unregister_reboot_notifier);
void kernel_restart(char *cmd)
{
kernel_restart_prepare(cmd);
+ disable_nonboot_cpus();
if (!cmd)
printk(KERN_EMERG "Restarting system.\n");
else