summaryrefslogtreecommitdiffstats
path: root/acpi_reboot.patch
diff options
context:
space:
mode:
authorKyle McMartin <kyle@redhat.com>2011-05-30 07:23:14 -0400
committerKyle McMartin <kyle@redhat.com>2011-05-30 07:23:14 -0400
commit123d535ad8de98fe5fd368bea098100171fdfb97 (patch)
tree519e4e355539a65ca27c0321f3af048874314d4d /acpi_reboot.patch
parentcbc61c988b303e7718d0e711e1c506b0700042f4 (diff)
downloadkernel-123d535ad8de98fe5fd368bea098100171fdfb97.tar.gz
kernel-123d535ad8de98fe5fd368bea098100171fdfb97.tar.xz
kernel-123d535ad8de98fe5fd368bea098100171fdfb97.zip
rebase and nuke patches
Diffstat (limited to 'acpi_reboot.patch')
-rw-r--r--acpi_reboot.patch53
1 files changed, 0 insertions, 53 deletions
diff --git a/acpi_reboot.patch b/acpi_reboot.patch
deleted file mode 100644
index c67cf950b..000000000
--- a/acpi_reboot.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-Improve our reboot handling for compatibility with Windows. Upstream in .38?
-
-diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c
-index c495aa8..c770e66 100644
---- a/arch/x86/kernel/reboot.c
-+++ b/arch/x86/kernel/reboot.c
-@@ -34,7 +34,7 @@ EXPORT_SYMBOL(pm_power_off);
-
- static const struct desc_ptr no_idt = {};
- static int reboot_mode;
--enum reboot_type reboot_type = BOOT_KBD;
-+enum reboot_type reboot_type = BOOT_ACPI;
- int reboot_force;
-
- #if defined(CONFIG_X86_32) && defined(CONFIG_SMP)
-@@ -538,9 +538,23 @@ void __attribute__((weak)) mach_reboot_fixups(void)
- {
- }
-
-+/*
-+ * Windows does the following on reboot:
-+ * 1) If the FADT has the ACPI reboot register flag set, try it
-+ * 2) If still alive, write to the keyboard controller
-+ * 3) If still alive, write to the ACPI reboot register again
-+ * 4) If still alive, write to the keyboard controller again
-+ *
-+ * If the machine is still alive at this stage, it gives up. We default to
-+ * following the same pattern, except that if we're still alive after (4) we'll
-+ * try to force a triple fault and then cycle between hitting the keyboard
-+ * controller and doing that
-+ */
- static void native_machine_emergency_restart(void)
- {
- int i;
-+ int attempt = 0;
-+ int orig_reboot_type = reboot_type;
-
- if (reboot_emergency)
- emergency_vmx_disable_all();
-@@ -562,6 +576,13 @@ static void native_machine_emergency_restart(void)
- outb(0xfe, 0x64); /* pulse reset low */
- udelay(50);
- }
-+ if (attempt == 0 && orig_reboot_type == BOOT_ACPI) {
-+ attempt = 1;
-+ reboot_type = BOOT_ACPI;
-+ } else {
-+ reboot_type = BOOT_TRIPLE;
-+ }
-+ break;
-
- case BOOT_TRIPLE:
- load_idt(&no_idt);