lkml.org 
[lkml]   [2011]   [Mar]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3/4] ACPI: Bug compatibility for Windows on the ACPI reboot vector
    Date
    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>
    ---
    drivers/acpi/reboot.c | 9 ++++-----
    1 files changed, 4 insertions(+), 5 deletions(-)

    diff --git a/drivers/acpi/reboot.c b/drivers/acpi/reboot.c
    index 93f9114..4870aaa 100644
    --- a/drivers/acpi/reboot.c
    +++ b/drivers/acpi/reboot.c
    @@ -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);
    }
    --
    1.7.4.1


    \
     
     \ /
      Last update: 2011-03-11 22:15    [W:0.020 / U:119.952 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site