Skip to content

Commit c7ffa6c

Browse files
avikivityIngo Molnar
authored andcommitted
x86: default to reboot via ACPI
Triple-fault and keyboard reset may assert INIT instead of RESET; however INIT is blocked when Intel VT is enabled. This leads to a partially reset machine when invoking emergency_restart via sysrq-b: the processor is still working but other parts of the system are dead. Default to rebooting via ACPI, which correctly asserts RESET and reboots the machine. This is safe since we will fall back to keyboard reset and triple fault if acpi is not enabled or if the reset is not successful. Signed-off-by: Avi Kivity <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
1 parent 83097ac commit c7ffa6c

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

arch/x86/kernel/reboot.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,11 @@ EXPORT_SYMBOL(pm_power_off);
2929

3030
static const struct desc_ptr no_idt = {};
3131
static int reboot_mode;
32-
enum reboot_type reboot_type = BOOT_KBD;
32+
/*
33+
* Keyboard reset and triple fault may result in INIT, not RESET, which
34+
* doesn't work when we're in vmx root mode. Try ACPI first.
35+
*/
36+
enum reboot_type reboot_type = BOOT_ACPI;
3337
int reboot_force;
3438

3539
#if defined(CONFIG_X86_32) && defined(CONFIG_SMP)

0 commit comments

Comments
 (0)