xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] ACPI/APEI: accept validly sized ERST on Intel systems only for now
@ 2012-10-18  7:45 Jan Beulich
  2012-10-18  7:55 ` Keir Fraser
  0 siblings, 1 reply; 3+ messages in thread
From: Jan Beulich @ 2012-10-18  7:45 UTC (permalink / raw)
  To: xen-devel; +Cc: Wei Wang, Jinsong Liu, christoph.egger

[-- Attachment #1: Type: text/plain, Size: 1104 bytes --]

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@suse.com>

--- a/xen/drivers/acpi/apei/erst.c
+++ b/xen/drivers/acpi/apei/erst.c
@@ -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.




[-- Attachment #2: ACPI-ERST-Intel-only.patch --]
[-- Type: text/plain, Size: 1168 bytes --]

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@suse.com>

--- a/xen/drivers/acpi/apei/erst.c
+++ b/xen/drivers/acpi/apei/erst.c
@@ -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.

[-- Attachment #3: Type: text/plain, Size: 126 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] ACPI/APEI: accept validly sized ERST on Intel systems only for now
  2012-10-18  7:45 [PATCH] ACPI/APEI: accept validly sized ERST on Intel systems only for now Jan Beulich
@ 2012-10-18  7:55 ` Keir Fraser
  2012-10-18  8:46   ` Liu, Jinsong
  0 siblings, 1 reply; 3+ messages in thread
From: Keir Fraser @ 2012-10-18  7:55 UTC (permalink / raw)
  To: Jan Beulich, xen-devel; +Cc: Wei Wang, Jinsong Liu, christoph.egger

On 18/10/2012 08:45, "Jan Beulich" <JBeulich@suse.com> wrote:

> 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@suse.com>

Acked-by: Keir Fraser <keir@xen.org>

> --- a/xen/drivers/acpi/apei/erst.c
> +++ b/xen/drivers/acpi/apei/erst.c
> @@ -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-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] ACPI/APEI: accept validly sized ERST on Intel systems only for now
  2012-10-18  7:55 ` Keir Fraser
@ 2012-10-18  8:46   ` Liu, Jinsong
  0 siblings, 0 replies; 3+ messages in thread
From: Liu, Jinsong @ 2012-10-18  8:46 UTC (permalink / raw)
  To: Keir Fraser, Jan Beulich, xen-devel; +Cc: Wei Wang, christoph.egger@amd.com

Fine to Intel. Both old and new Intel platform work.

Thanks,
Jinsong

Keir Fraser wrote:
> On 18/10/2012 08:45, "Jan Beulich" <JBeulich@suse.com> wrote:
> 
>> 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@suse.com>
> 
> Acked-by: Keir Fraser <keir@xen.org>
> 
>> --- a/xen/drivers/acpi/apei/erst.c
>> +++ b/xen/drivers/acpi/apei/erst.c
>> @@ -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-devel mailing list
>> Xen-devel@lists.xen.org
>> http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2012-10-18  8:46 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-10-18  7:45 [PATCH] ACPI/APEI: accept validly sized ERST on Intel systems only for now Jan Beulich
2012-10-18  7:55 ` Keir Fraser
2012-10-18  8:46   ` Liu, Jinsong

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).