ARM: disable preemption in machine_shutdown

file:32ab699b85d48017a8792772532a482960babdd8 -> file:c05612e06b11e6b6ba5bba5d195fcd2bd9cffb90
--- a/arch/arm/kernel/process.c
+++ b/arch/arm/kernel/process.c
@@ -275,6 +275,15 @@ __setup("reboot=", reboot_setup);
void machine_shutdown(void)
{
#ifdef CONFIG_SMP
+ /*
+ * Disable preemption so we're guaranteed to
+ * run to power off or reboot and prevent
+ * the possibility of switching to another
+ * thread that might wind up blocking on
+ * one of the stopped CPUs.
+ */
+ preempt_disable();
+
smp_send_stop();
#endif
}