|
@@ -77,6 +77,7 @@ static inline void kb_wait(void)
|
|
|
|
|
|
void machine_shutdown(void)
|
|
void machine_shutdown(void)
|
|
{
|
|
{
|
|
|
|
+ unsigned long flags;
|
|
/* Stop the cpus and apics */
|
|
/* Stop the cpus and apics */
|
|
#ifdef CONFIG_SMP
|
|
#ifdef CONFIG_SMP
|
|
int reboot_cpu_id;
|
|
int reboot_cpu_id;
|
|
@@ -98,7 +99,7 @@ void machine_shutdown(void)
|
|
smp_send_stop();
|
|
smp_send_stop();
|
|
#endif
|
|
#endif
|
|
|
|
|
|
- local_irq_disable();
|
|
|
|
|
|
+ local_irq_save(flags);
|
|
|
|
|
|
#ifndef CONFIG_SMP
|
|
#ifndef CONFIG_SMP
|
|
disable_local_APIC();
|
|
disable_local_APIC();
|
|
@@ -106,7 +107,7 @@ void machine_shutdown(void)
|
|
|
|
|
|
disable_IO_APIC();
|
|
disable_IO_APIC();
|
|
|
|
|
|
- local_irq_enable();
|
|
|
|
|
|
+ local_irq_restore(flags);
|
|
}
|
|
}
|
|
|
|
|
|
void machine_emergency_restart(void)
|
|
void machine_emergency_restart(void)
|