Commit 62b3a04d authored by Eric W. Biederman's avatar Eric W. Biederman Committed by Linus Torvalds

[PATCH] x86_64: Implemenent machine_emergency_restart

It is not safe to call set_cpus_allowed() in interrupt
context and disabling the apics is complicated code.
So unconditionally skip machine_shutdown in machine_emergency_reboot
on x86_64.
Signed-off-by: default avatarEric W. Biederman <ebiederm@xmission.com>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 7c9a9007
...@@ -109,16 +109,10 @@ void machine_shutdown(void) ...@@ -109,16 +109,10 @@ void machine_shutdown(void)
local_irq_enable(); local_irq_enable();
} }
void machine_restart(char * __unused) void machine_emergency_restart(void)
{ {
int i; int i;
printk("machine restart\n");
if (!reboot_force) {
machine_shutdown();
}
/* Tell the BIOS if we want cold or warm reboot */ /* Tell the BIOS if we want cold or warm reboot */
*((unsigned short *)__va(0x472)) = reboot_mode; *((unsigned short *)__va(0x472)) = reboot_mode;
...@@ -143,6 +137,16 @@ void machine_restart(char * __unused) ...@@ -143,6 +137,16 @@ void machine_restart(char * __unused)
} }
} }
void machine_restart(char * __unused)
{
printk("machine restart\n");
if (!reboot_force) {
machine_shutdown();
}
machine_emergency_restart();
}
void machine_halt(void) void machine_halt(void)
{ {
} }
......
#ifndef _ASM_EMERGENCY_RESTART_H #ifndef _ASM_EMERGENCY_RESTART_H
#define _ASM_EMERGENCY_RESTART_H #define _ASM_EMERGENCY_RESTART_H
#include <asm-generic/emergency-restart.h> extern void machine_emergency_restart(void);
#endif /* _ASM_EMERGENCY_RESTART_H */ #endif /* _ASM_EMERGENCY_RESTART_H */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment