]> xenbits.xensource.com Git - xen.git/commitdiff
Fix the address calculation of acpi enable reg according to ACPI spec.
authorKeir Fraser <keir.fraser@citrix.com>
Mon, 5 May 2008 09:16:58 +0000 (10:16 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Mon, 5 May 2008 09:16:58 +0000 (10:16 +0100)
Signed-off-by: Wei Gang <gang.wei@intel.com>
xen/arch/x86/acpi/boot.c

index 6ff77d3566ea19f018df7dc2644e74ac07b9916d..1cc148b2e3f4fb339522d14ffbae7b47dd159d3b 100644 (file)
@@ -475,8 +475,12 @@ acpi_fadt_parse_reg(struct acpi_table_fadt *fadt)
                       sizeof(acpi_gbl_xpm1a_enable));
                memcpy(&acpi_gbl_xpm1b_enable, &fadt->xpm1b_event_block,
                       sizeof(acpi_gbl_xpm1b_enable));
-               acpi_gbl_xpm1a_enable.address += 2;
-               acpi_gbl_xpm1b_enable.address += 2;
+
+               acpi_gbl_xpm1a_enable.address +=
+                       acpi_gbl_FADT.pm1_event_length / 2;
+               if ( acpi_gbl_xpm1b_enable.address )
+                       acpi_gbl_xpm1b_enable.address +=
+                               acpi_gbl_FADT.pm1_event_length / 2;
        }
 }