diff --git a/arch/i386/kernel/reboot.c b/arch/i386/kernel/reboot.c index 1b24bc7271af165730ae48e7c8c91783fd040d23..d473350aa05506297ff36583a6028743e1be0b81 100644 --- a/arch/i386/kernel/reboot.c +++ b/arch/i386/kernel/reboot.c @@ -311,10 +311,8 @@ void machine_shutdown(void) #endif } -void machine_restart(char * __unused) +void machine_emergency_restart(void) { - machine_shutdown(); - if (!reboot_thru_bios) { if (efi_enabled) { efi.reset_system(EFI_RESET_COLD, EFI_SUCCESS, 0, NULL); @@ -337,6 +335,12 @@ void machine_restart(char * __unused) machine_real_restart(jump_to_bios, sizeof(jump_to_bios)); } +void machine_restart(char * __unused) +{ + machine_shutdown(); + machine_emergency_restart(); +} + void machine_halt(void) { } diff --git a/include/asm-i386/emergency-restart.h b/include/asm-i386/emergency-restart.h index 108d8c48e42e86978077354f2fa1b151f25c41df..680c3956334542d75617e6d89b82298f906e250a 100644 --- a/include/asm-i386/emergency-restart.h +++ b/include/asm-i386/emergency-restart.h @@ -1,6 +1,6 @@ #ifndef _ASM_EMERGENCY_RESTART_H #define _ASM_EMERGENCY_RESTART_H -#include +extern void machine_emergency_restart(void); #endif /* _ASM_EMERGENCY_RESTART_H */