svn commit: r299004 - head/sys/x86/acpica

Eric van Gyzen vangyzen at FreeBSD.org
Tue May 3 20:14:06 UTC 2016


Author: vangyzen
Date: Tue May  3 20:14:04 2016
New Revision: 299004
URL: https://svnweb.freebsd.org/changeset/base/299004

Log:
  Work around (ignore) broken SRAT tables
  
  Instead of panicking when parsing an invalid ACPI SRAT table,
  just ignore it, effectively disabling NUMA.
  
  https://lists.freebsd.org/pipermail/freebsd-current/2016-May/060984.html
  
  Reported and tested by:	 Bill O'Hanlon (bill.ohanlon at gmail.com)
  Reviewed by:	jhb
  MFC after:	1 week
  Relnotes:	If dmesg shows "SRAT: Duplicate local APIC ID",
                  try updating your BIOS to fix NUMA support.
  Sponsored by:	Dell Inc.

Modified:
  head/sys/x86/acpica/srat.c

Modified: head/sys/x86/acpica/srat.c
==============================================================================
--- head/sys/x86/acpica/srat.c	Tue May  3 20:08:05 2016	(r299003)
+++ head/sys/x86/acpica/srat.c	Tue May  3 20:14:04 2016	(r299004)
@@ -201,8 +201,12 @@ srat_parse_entry(ACPI_SUBTABLE_HEADER *e
 			    "enabled" : "disabled");
 		if (!(cpu->Flags & ACPI_SRAT_CPU_ENABLED))
 			break;
-		KASSERT(!cpus[cpu->ApicId].enabled,
-		    ("Duplicate local APIC ID %u", cpu->ApicId));
+		if (cpus[cpu->ApicId].enabled) {
+			printf("SRAT: Duplicate local APIC ID %u\n",
+			    cpu->ApicId);
+			*(int *)arg = ENXIO;
+			break;
+		}
 		cpus[cpu->ApicId].domain = domain;
 		cpus[cpu->ApicId].enabled = 1;
 		break;


More information about the svn-src-head mailing list