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

[Xen-devel] [PATCH] Add support for old and new bios erst, enable mce_apei logic



Add support for old and new bios erst, enable mce_apei logic

When testing, we found different bios has different understanding about APEI 
ERST table header, depending on whether it count ACPI standard header or not.
This patch add support for both bios version, and enable mce_apei.

Signed-off-by: Liu, Jinsong <jinsong.liu@xxxxxxxxx>

diff -r fbb448cf5cba xen/arch/x86/cpu/mcheck/Makefile
--- a/xen/arch/x86/cpu/mcheck/Makefile  Thu Jul 14 13:24:19 2011 +0100
+++ b/xen/arch/x86/cpu/mcheck/Makefile  Mon Jul 18 21:40:28 2011 +0800
@@ -4,7 +4,7 @@ obj-y += amd_f10.o
 obj-y += amd_f10.o
 obj-y += mctelem.o
 obj-y += mce.o
-#obj-y += mce-apei.o
+obj-y += mce-apei.o
 obj-y += mce_intel.o
 obj-y += mce_amd_quirks.o
 obj-y += non-fatal.o
diff -r fbb448cf5cba xen/drivers/acpi/apei/erst.c
--- a/xen/drivers/acpi/apei/erst.c      Thu Jul 14 13:24:19 2011 +0100
+++ b/xen/drivers/acpi/apei/erst.c      Mon Jul 18 21:40:28 2011 +0800
@@ -715,7 +715,14 @@ int erst_clear(u64 record_id)
 
 static int __init erst_check_table(struct acpi_table_erst *erst_tab)
 {
-       if (erst_tab->header_length != sizeof(struct acpi_table_erst))
+       /*
+        * some old bios think erst header length include ACPI standard header,
+        * while new bios think it don't include ACPI standard header length.
+        * we update check here for both bios
+        */
+       if ((erst_tab->header_length !=
+           (sizeof(struct acpi_table_erst) - sizeof(erst_tab->header)))
+           && (erst_tab->header_length != sizeof(struct acpi_table_erst)))
                return -EINVAL;
        if (erst_tab->header.length < sizeof(struct acpi_table_erst))
                return -EINVAL;

Attachment: mce_erst_1.patch
Description: mce_erst_1.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®.