diff options
| -rw-r--r-- | arch/arm/kernel/process.c | 10 | 
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c index 09f001a1094..d12f92e011d 100644 --- a/arch/arm/kernel/process.c +++ b/arch/arm/kernel/process.c @@ -235,6 +235,16 @@ __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(); +#endif  	disable_nonboot_cpus();  }  |