|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] ACPI/APEI: accept validly sized ERST on Intel systems only for now
# HG changeset patch
# User Jan Beulich <jbeulich@xxxxxxxx>
# Date 1350547668 -7200
# Node ID af3f99e1983181bde2b3077d0eb4c4206dbca343
# Parent 5c402b905e00fb0871c3f439c8391dd3cfb3bc10
ACPI/APEI: accept validly sized ERST on Intel systems only for now
Various AMD systems (but [unfortunately] not mine) hang when the table
size check passes. Allow the check to pass on Intel systems only for
now (until someone can actually debug the problem).
Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
Acked-by: Keir Fraser <keir@xxxxxxx>
---
diff -r 5c402b905e00 -r af3f99e19831 xen/drivers/acpi/apei/erst.c
--- a/xen/drivers/acpi/apei/erst.c Wed Oct 17 16:43:55 2012 +0100
+++ b/xen/drivers/acpi/apei/erst.c Thu Oct 18 10:07:48 2012 +0200
@@ -769,6 +769,19 @@ static int __init erst_check_table(struc
switch (erst_tab->header_length) {
case sizeof(*erst_tab) - sizeof(erst_tab->header):
+#ifdef CONFIG_X86
+ /* XXX
+ * While the rest of the ERST code appears to work on Intel
+ * systems with properly sized tables, various AMD systems
+ * appear to get hung (at boot time) by allowing this. Until
+ * someone with access to suitable hardware can debug this,
+ * disable the rest of the code by considering this case
+ * invalid.
+ */
+ if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL)
+ return -EINVAL;
+ /* fall through */
+#endif
/*
* While invalid per specification, there are (early?) systems
* indicating the full header size here, so accept that value too.
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |