linux-acpi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Matthew Garrett <mjg@redhat.com>
To: linux-acpi@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, x86@kernel.org,
	Matthew Garrett <mjg@redhat.com>
Subject: [PATCH 3/4] ACPI: Bug compatibility for Windows on the ACPI reboot vector
Date: Fri, 11 Mar 2011 16:12:19 -0500	[thread overview]
Message-ID: <1299877940-6870-3-git-send-email-mjg@redhat.com> (raw)
In-Reply-To: <1299877940-6870-1-git-send-email-mjg@redhat.com>

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

  parent reply	other threads:[~2011-03-11 21:12 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-11 21:12 [PATCH 1/4] X86: Revamp reboot behaviour to match Windows more closely Matthew Garrett
2011-03-11 21:12 ` [PATCH 2/4] ACPICA: Fix access width for reset vector Matthew Garrett
2011-03-23  3:52   ` Len Brown
2011-03-11 21:12 ` Matthew Garrett [this message]
2011-03-23  3:52   ` [PATCH 3/4] ACPI: Bug compatibility for Windows on the ACPI reboot vector Len Brown
2011-03-11 21:12 ` [PATCH 4/4] ACPI: Make sure the FADT is at least rev 2 before using the reset register Matthew Garrett
2011-03-23  4:01   ` Len Brown
2011-03-23 10:59     ` Matthew Garrett
2011-03-11 22:08 ` [PATCH 1/4] X86: Revamp reboot behaviour to match Windows more closely Rafael J. Wysocki
2011-03-11 22:15   ` Matthew Garrett
2011-03-11 22:18     ` Rafael J. Wysocki
2011-03-23  3:49       ` Len Brown
2011-03-23  4:08 ` Len Brown

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1299877940-6870-3-git-send-email-mjg@redhat.com \
    --to=mjg@redhat.com \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).