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;
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to