summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorvangyzen <vangyzen@FreeBSD.org>2016-05-11 22:06:28 +0000
committervangyzen <vangyzen@FreeBSD.org>2016-05-11 22:06:28 +0000
commit4dc4a1749542ffb3325a4c24d3b96ce61d3e1531 (patch)
tree03ca1be09347357c938c868328888df195f01f2b
parent51b64e6621e9e8ea3c0d09de623db018537b7cd5 (diff)
downloadFreeBSD-src-4dc4a1749542ffb3325a4c24d3b96ce61d3e1531.zip
FreeBSD-src-4dc4a1749542ffb3325a4c24d3b96ce61d3e1531.tar.gz
MFC r299004: Work around (ignore) broken SRAT tables
-rw-r--r--sys/x86/acpica/srat.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/sys/x86/acpica/srat.c b/sys/x86/acpica/srat.c
index 45f1c3d..952dce9 100644
--- a/sys/x86/acpica/srat.c
+++ b/sys/x86/acpica/srat.c
@@ -108,8 +108,12 @@ srat_parse_entry(ACPI_SUBTABLE_HEADER *entry, void *arg)
"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;
OpenPOWER on IntegriCloud