void (*pm_power_off)(void);
static int reboot_mode;
-int reboot_thru_bios;
+static int reboot_thru_bios;
#ifdef CONFIG_SMP
int reboot_smp = 0;
{ }
};
-static int reboot_init(void)
+static int __init reboot_init(void)
{
dmi_check_system(reboot_dmi_table);
return 0;
* other OSs see a clean IRQ state.
*/
smp_send_stop();
-#elif defined(CONFIG_X86_LOCAL_APIC)
- if (cpu_has_apic) {
- local_irq_disable();
- disable_local_APIC();
- local_irq_enable();
- }
-#endif
+#endif /* CONFIG_SMP */
+
+ lapic_shutdown();
+
#ifdef CONFIG_X86_IO_APIC
disable_IO_APIC();
#endif
void machine_power_off(void)
{
+ lapic_shutdown();
+
if (efi_enabled)
efi.reset_system(EFI_RESET_SHUTDOWN, EFI_SUCCESS, 0, NULL);
if (pm_power_off)