[haiku-commits] Change in haiku[master]: bios_ia32: continue on invalid ACPI RSDT/XSDT table checksum

  • From: Gerrit <review@xxxxxxxxxxxxxxxxxxx>
  • To: waddlesplash <waddlesplash@xxxxxxxxx>, haiku-commits@xxxxxxxxxxxxx
  • Date: Mon, 18 May 2020 18:26:16 +0000

From Jérôme Duval <jerome.duval@xxxxxxxxx>:

Jérôme Duval has uploaded this change for review. ( 
https://review.haiku-os.org/c/haiku/+/2740 ;)


Change subject: bios_ia32: continue on invalid ACPI RSDT/XSDT table checksum
......................................................................

bios_ia32: continue on invalid ACPI RSDT/XSDT table checksum

like ACPICA does by default. should help with #16055.
---
M src/system/boot/platform/bios_ia32/acpi.cpp
1 file changed, 7 insertions(+), 11 deletions(-)



  git pull ssh://git.haiku-os.org:22/haiku refs/changes/40/2740/1

diff --git a/src/system/boot/platform/bios_ia32/acpi.cpp 
b/src/system/boot/platform/bios_ia32/acpi.cpp
index 3880962..c834e21 100644
--- a/src/system/boot/platform/bios_ia32/acpi.cpp
+++ b/src/system/boot/platform/bios_ia32/acpi.cpp
@@ -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 @@

        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 valid %.4s at %p\n", rsdt->signature, 
rsdt));
        } else
                return B_ERROR;


--
To view, visit https://review.haiku-os.org/c/haiku/+/2740
To unsubscribe, or for help writing mail filters, visit 
https://review.haiku-os.org/settings

Gerrit-Project: haiku
Gerrit-Branch: master
Gerrit-Change-Id: I2379d99ecda93007b0dd316b3c94eb1a36ccd7e5
Gerrit-Change-Number: 2740
Gerrit-PatchSet: 1
Gerrit-Owner: Jérôme Duval <jerome.duval@xxxxxxxxx>
Gerrit-MessageType: newchange

Other related posts:

  • » [haiku-commits] Change in haiku[master]: bios_ia32: continue on invalid ACPI RSDT/XSDT table checksum - Gerrit