Skip to content

Commit

Permalink
[PATCH] x86_64: Implemenent machine_emergency_restart
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Eric W. Biederman authored and Linus Torvalds committed Jul 26, 2005
1 parent 7c9a900 commit 62b3a04
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 8 deletions.
18 changes: 11 additions & 7 deletions arch/x86_64/kernel/reboot.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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)
{
}
Expand Down
2 changes: 1 addition & 1 deletion include/asm-x86_64/emergency-restart.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#ifndef _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 */

0 comments on commit 62b3a04

Please sign in to comment.