diff options
author | Eric W. Biederman <ebiederm@xmission.com> | 2005-07-26 17:45:31 (GMT) |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-07-26 21:35:42 (GMT) |
commit | 62b3a04d75d2dc9480d5ad3b60f4258e548a6a83 (patch) | |
tree | 61c91a3fc9785346dd966249fb4acbe1feae1909 /arch | |
parent | 7c9a90073c75bffbb89763a0c7d44a2e44e9e628 (diff) | |
download | linux-62b3a04d75d2dc9480d5ad3b60f4258e548a6a83.tar.xz |
[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: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86_64/kernel/reboot.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/arch/x86_64/kernel/reboot.c b/arch/x86_64/kernel/reboot.c index d4c45ff..3d1cc09 100644 --- a/arch/x86_64/kernel/reboot.c +++ b/arch/x86_64/kernel/reboot.c @@ -109,16 +109,10 @@ void machine_shutdown(void) local_irq_enable(); } -void machine_restart(char * __unused) +void machine_emergency_restart(void) { int i; - printk("machine restart\n"); - - if (!reboot_force) { - machine_shutdown(); - } - /* Tell the BIOS if we want cold or warm reboot */ *((unsigned short *)__va(0x472)) = reboot_mode; @@ -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) { } |