diff options
author | jhb <jhb@FreeBSD.org> | 2010-03-19 12:43:18 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2010-03-19 12:43:18 +0000 |
commit | b77ce56b4b268aa69fb0da457c93610b254ce7d8 (patch) | |
tree | db0349601c0b443d361feb07a3c565e5f62c3d43 | |
parent | 373381fc28b4eee880064ddab5523adfba099ecf (diff) | |
download | FreeBSD-src-b77ce56b4b268aa69fb0da457c93610b254ce7d8.zip FreeBSD-src-b77ce56b4b268aa69fb0da457c93610b254ce7d8.tar.gz |
Use the same policy for rejecting / not-reject ACPI tables with incorrect
checksums as the base acpi(4) driver. This fixes a problem where the MADT
parser would reject the MADT table during early boot causing the MP Table
to be, but then the acpi(4) driver would attach and use non-SMP interrupt
routing.
Tested by: Alastair Hogge agh of coolrhaug com
MFC after: 1 week
-rw-r--r-- | sys/amd64/acpica/acpi_machdep.c | 2 | ||||
-rw-r--r-- | sys/i386/acpica/acpi_machdep.c | 2 |
2 files changed, 4 insertions, 0 deletions
diff --git a/sys/amd64/acpica/acpi_machdep.c b/sys/amd64/acpica/acpi_machdep.c index 7e7a01a..8c66696 100644 --- a/sys/amd64/acpica/acpi_machdep.c +++ b/sys/amd64/acpica/acpi_machdep.c @@ -627,8 +627,10 @@ map_table(vm_paddr_t pa, int offset, const char *sig) if (ACPI_FAILURE(AcpiTbChecksum(table, length))) { if (bootverbose) printf("ACPI: Failed checksum for table %s\n", sig); +#if (ACPI_CHECKSUM_ABORT) table_unmap(table, length); return (NULL); +#endif } return (table); } diff --git a/sys/i386/acpica/acpi_machdep.c b/sys/i386/acpica/acpi_machdep.c index ae23178..7ea57d9 100644 --- a/sys/i386/acpica/acpi_machdep.c +++ b/sys/i386/acpica/acpi_machdep.c @@ -641,8 +641,10 @@ map_table(vm_paddr_t pa, int offset, const char *sig) if (ACPI_FAILURE(AcpiTbChecksum(table, length))) { if (bootverbose) printf("ACPI: Failed checksum for table %s\n", sig); +#if (ACPI_CHECKSUM_ABORT) table_unmap(table, length); return (NULL); +#endif } return (table); } |