aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/reboot.c
diff options
context:
space:
mode:
authorMatthew Garrett <mjg@redhat.com>2011-03-11 16:12:19 -0500
committerLen Brown <len.brown@intel.com>2011-03-22 23:52:19 -0400
commit6734fe57a07b2dd23ef1ef2ac1f790747e53eefc (patch)
treed2ce723e116b1817864569fb6c3f367cb0d14c87 /drivers/acpi/reboot.c
parentf17d9cbf20c4734c4199caa6dee87047f2f8278f (diff)
ACPI: Bug compatibility for Windows on the ACPI reboot vector
Windows ignores the bit_offset and bit_width, despite the spec requiring that they be validated. Drop the checks so that we match this behaviour. Windows also goes straight for the keyboard controller if the ACPI reboot fails, so we shouldn't sleep if we're still alive. Signed-off-by: Matthew Garrett <mjg@redhat.com> Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi/reboot.c')
-rw-r--r--drivers/acpi/reboot.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/acpi/reboot.c b/drivers/acpi/reboot.c
index 93f91142d7ad..4870aaaa2ae1 100644
--- a/drivers/acpi/reboot.c
+++ b/drivers/acpi/reboot.c
@@ -15,9 +15,10 @@ void acpi_reboot(void)
15 15
16 rr = &acpi_gbl_FADT.reset_register; 16 rr = &acpi_gbl_FADT.reset_register;
17 17
18 /* Is the reset register supported? */ 18 /* Is the reset register supported? The spec says we should be
19 if (!(acpi_gbl_FADT.flags & ACPI_FADT_RESET_REGISTER) || 19 * checking the bit width and bit offset, but Windows ignores
20 rr->bit_width != 8 || rr->bit_offset != 0) 20 * these fields */
21 if (!(acpi_gbl_FADT.flags & ACPI_FADT_RESET_REGISTER))
21 return; 22 return;
22 23
23 reset_value = acpi_gbl_FADT.reset_value; 24 reset_value = acpi_gbl_FADT.reset_value;
@@ -45,6 +46,4 @@ void acpi_reboot(void)
45 acpi_reset(); 46 acpi_reset();
46 break; 47 break;
47 } 48 }
48 /* Wait ten seconds */
49 acpi_os_stall(10000000);
50} 49}