bios_ia32: continue on invalid ACPI RSDT/XSDT table checksum
like ACPICA does by default. should help with #16055. Change-Id: I2379d99ecda93007b0dd316b3c94eb1a36ccd7e5 Reviewed-on: https://review.haiku-os.org/c/haiku/+/2740 Reviewed-by: Axel Dörfler <[email protected]>
This commit is contained in:
committed by
Axel Dörfler
parent
4d0ad37aba
commit
0ad4a233f6
@@ -26,6 +26,7 @@
|
||||
#else
|
||||
# define TRACE(x) ;
|
||||
#endif
|
||||
#define ERROR(x...) dprintf(x)
|
||||
|
||||
static struct scan_spots_struct acpi_scan_spots[] = {
|
||||
{ 0x0, 0x400, 0x400 - 0x0 },
|
||||
@@ -135,18 +136,13 @@ acpi_check_rsdt(acpi_rsdp* rsdp)
|
||||
|
||||
if (rsdt != NULL) {
|
||||
if (acpi_validate_rsdt(rsdt) != B_OK) {
|
||||
TRACE(("acpi: rsdt failed checksum validation\n"));
|
||||
mmu_free(rsdt, length);
|
||||
return B_ERROR;
|
||||
} else {
|
||||
if (usingXsdt)
|
||||
sAcpiXsdt = rsdt;
|
||||
else
|
||||
sAcpiRsdt = rsdt;
|
||||
TRACE(("acpi: found valid %s at %p\n",
|
||||
usingXsdt ? ACPI_XSDT_SIGNATURE : ACPI_RSDT_SIGNATURE,
|
||||
rsdt));
|
||||
ERROR("acpi: %.4s failed checksum validation\n", rsdt->signature);
|
||||
}
|
||||
if (usingXsdt)
|
||||
sAcpiXsdt = rsdt;
|
||||
else
|
||||
sAcpiRsdt = rsdt;
|
||||
TRACE(("acpi: found %.4s at %p\n", rsdt->signature, rsdt));
|
||||
} else
|
||||
return B_ERROR;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user