aboutsummaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorShawn Guo <shawn.guo@linaro.org>2012-10-04 17:12:23 -0700
committerBen Hutchings <ben@decadent.org.uk>2012-10-17 03:49:36 +0100
commit38ad8e94283a9b130d17407bfaa023b69bfd0224 (patch)
tree7e9452cf35b304ede93c627ebac26d8444ec688a /kernel
parent7b786bcb5899a366ab272776dfd4b47a0bd1fe6b (diff)
kernel/sys.c: call disable_nonboot_cpus() in kernel_restart()
commit f96972f2dc6365421cf2366ebd61ee4cf060c8d5 upstream. 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> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/sys.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/kernel/sys.c b/kernel/sys.c
index 481611fbd07..c504302582e 100644
--- a/kernel/sys.c
+++ b/kernel/sys.c
@@ -365,6 +365,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