Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 79991
b: refs/heads/master
c: fa20efd
h: refs/heads/master
i:
  79989: d33ab0f
  79987: b88f24d
  79983: 00047d3
v: v3
  • Loading branch information
Aaron Durbin authored and Ingo Molnar committed Jan 30, 2008
1 parent 7889bc6 commit 5c66e82
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 3 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 5f561d3be8f0db54f9b4fc5cb5db05343f372431
refs/heads/master: fa20efd2fcd9349770113c6f72fc76ce437b62f5
5 changes: 4 additions & 1 deletion trunk/Documentation/x86_64/boot-options.txt
Original file line number Diff line number Diff line change
Expand Up @@ -110,12 +110,15 @@ Idle loop

Rebooting

reboot=b[ios] | t[riple] | k[bd] [, [w]arm | [c]old]
reboot=b[ios] | t[riple] | k[bd] | a[cpi] [, [w]arm | [c]old]
bios Use the CPU reboot vector for warm reset
warm Don't set the cold reboot flag
cold Set the cold reboot flag
triple Force a triple fault (init)
kbd Use the keyboard controller. cold reset (default)
acpi Use the ACPI RESET_REG in the FADT. If ACPI is not configured or the
ACPI reset does not work, the reboot path attempts the reset using
the keyboard controller.

Using warm reset will be much faster especially on big memory
systems because the BIOS will not go through the memory check.
Expand Down
11 changes: 10 additions & 1 deletion trunk/arch/x86/kernel/reboot_64.c
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
#include <linux/pm.h>
#include <linux/kdebug.h>
#include <linux/sched.h>
#include <acpi/reboot.h>
#include <asm/io.h>
#include <asm/delay.h>
#include <asm/desc.h>
Expand All @@ -29,7 +30,8 @@ EXPORT_SYMBOL(pm_power_off);
static long no_idt[3];
static enum {
BOOT_TRIPLE = 't',
BOOT_KBD = 'k'
BOOT_KBD = 'k',
BOOT_ACPI = 'a'
} reboot_type = BOOT_KBD;
static int reboot_mode = 0;
int reboot_force;
Expand All @@ -39,6 +41,7 @@ int reboot_force;
cold Set the cold reboot flag
triple Force a triple fault (init)
kbd Use the keyboard controller. cold reset (default)
acpi Use the RESET_REG in the FADT
force Avoid anything that could hang.
*/
static int __init reboot_setup(char *str)
Expand All @@ -54,6 +57,7 @@ static int __init reboot_setup(char *str)
break;

case 't':
case 'a':
case 'b':
case 'k':
reboot_type = *str;
Expand Down Expand Up @@ -146,6 +150,11 @@ void machine_emergency_restart(void)

reboot_type = BOOT_KBD;
break;

case BOOT_ACPI:
acpi_reboot();
reboot_type = BOOT_KBD;
break;
}
}
}
Expand Down

0 comments on commit 5c66e82

Please sign in to comment.