WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] ACPI: workaround for S3 fail in two facs

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] ACPI: workaround for S3 fail in two facs tables case
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Thu, 25 Feb 2010 13:10:20 -0800
Delivery-date: Thu, 25 Feb 2010 13:10:43 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1267131403 0
# Node ID f6d7b66fdb80d2e61c14cee1859fb482f9b66839
# Parent  d9db3684f2921645aa00a9247ea9e7512ab3c4d6
ACPI: workaround for S3 fail in two facs tables case

Some legacy BIOS which support ACPI2.0+ may expose two FACS tables via
both FADT->FIRMWARE_CTRL and FADT->X_FIRMWARE_CTRL, but only lookup S3
waking_vector in the first one.

Signed-off-by: Wei Gang <gang.wei@xxxxxxxxx>
Signed-off-by: Keir Fraser <keir.fraser@xxxxxxxxxx>
---
 xen/arch/x86/acpi/boot.c |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)

diff -r d9db3684f292 -r f6d7b66fdb80 xen/arch/x86/acpi/boot.c
--- a/xen/arch/x86/acpi/boot.c  Thu Feb 25 11:54:19 2010 +0000
+++ b/xen/arch/x86/acpi/boot.c  Thu Feb 25 20:56:43 2010 +0000
@@ -365,10 +365,15 @@ acpi_fadt_parse_sleep_info(struct acpi_t
               acpi_sinfo.pm1b_evt_blk.address);
 
        /* Now FACS... */
-       if (fadt->header.revision >= FADT2_REVISION_ID)
-               facs_pa = fadt->Xfacs;
-       else
+       facs_pa = ((fadt->header.revision >= FADT2_REVISION_ID)
+                  ? fadt->Xfacs : (uint64_t)fadt->facs);
+       if (fadt->facs && ((uint64_t)fadt->facs != facs_pa)) {
+               printk(KERN_WARNING PREFIX
+                      "32/64X FACS address mismatch in FADT - "
+                      "%08x/%016"PRIx64", using 32",
+                      fadt->facs, facs_pa);
                facs_pa = (uint64_t)fadt->facs;
+       }
 
        facs = (struct acpi_table_facs *)
                __acpi_map_table(facs_pa, sizeof(struct acpi_table_facs));

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] ACPI: workaround for S3 fail in two facs tables case, Xen patchbot-unstable <=