[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH]ACPI: workaround for S3 fail in two facs tables case



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. So enhance the X_FIRMWARE_CTRL selection condition by adding 
FADT->FIRMWARE_CTRL == 0.

Signed-off-by: Wei Gang <gang.wei@xxxxxxxxx>

diff -r e11c8dcbf690 xen/arch/x86/acpi/boot.c
--- a/xen/arch/x86/acpi/boot.c  Wed Feb 24 11:00:11 2010 +0800
+++ b/xen/arch/x86/acpi/boot.c  Thu Feb 25 20:47:37 2010 +0800
@@ -365,7 +365,7 @@ acpi_fadt_parse_sleep_info(struct acpi_t
               acpi_sinfo.pm1b_evt_blk.address);
 
        /* Now FACS... */
-       if (fadt->header.revision >= FADT2_REVISION_ID)
+       if (fadt->header.revision >= FADT2_REVISION_ID && fadt->facs == 0)
                facs_pa = fadt->Xfacs;
        else
                facs_pa = (uint64_t)fadt->facs;

Attachment: two_facs_workaround.patch
Description: two_facs_workaround.patch

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

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.