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>
This commit is contained in:
parent
f17d9cbf20
commit
6734fe57a0
@ -15,9 +15,10 @@ void acpi_reboot(void)
|
||||
|
||||
rr = &acpi_gbl_FADT.reset_register;
|
||||
|
||||
/* Is the reset register supported? */
|
||||
if (!(acpi_gbl_FADT.flags & ACPI_FADT_RESET_REGISTER) ||
|
||||
rr->bit_width != 8 || rr->bit_offset != 0)
|
||||
/* Is the reset register supported? The spec says we should be
|
||||
* checking the bit width and bit offset, but Windows ignores
|
||||
* these fields */
|
||||
if (!(acpi_gbl_FADT.flags & ACPI_FADT_RESET_REGISTER))
|
||||
return;
|
||||
|
||||
reset_value = acpi_gbl_FADT.reset_value;
|
||||
@ -45,6 +46,4 @@ void acpi_reboot(void)
|
||||
acpi_reset();
|
||||
break;
|
||||
}
|
||||
/* Wait ten seconds */
|
||||
acpi_os_stall(10000000);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user