[PATCH][RESEND] apci: checksum: RSDT and XSDT checksum failures should not be critical (LP: #1013168)

Colin King colin.king at canonical.com
Mon Jun 18 08:18:20 UTC 2012


From: Colin Ian King <colin.king at canonical.com>

It seems that the kernel is quite happy to handle RSDT and XSDT tables that
fail on their checksum checks, so lets not fail these as critical failures
anymore.

Signed-off-by: Colin Ian King <colin.king at canonical.com>
---
 src/acpi/checksum/checksum.c |   41 +++++++----------------------------------
 1 file changed, 7 insertions(+), 34 deletions(-)

diff --git a/src/acpi/checksum/checksum.c b/src/acpi/checksum/checksum.c
index 264e7d0..9918a62 100644
--- a/src/acpi/checksum/checksum.c
+++ b/src/acpi/checksum/checksum.c
@@ -89,16 +89,6 @@ static void checksum_rsdp(fwts_framework *fw, fwts_acpi_table_info *table)
 
 }
 
-/*
- *  The following tables the kernel requires the checksum to be valid otherwise
- *  it will not load them, so checksum failures here are considered critical errors.
- */
-static char *critical_checksum[] = {
-	"RSDT",
-	"XSDT",
-	NULL
-};
-
 static int checksum_scan_tables(fwts_framework *fw)
 {
 	int i;
@@ -131,35 +121,18 @@ static int checksum_scan_tables(fwts_framework *fw)
 			fwts_passed(fw, "Table %s has correct checksum 0x%x.",
 				table->name, hdr->checksum);
 		else {
-			int i;
-			int log_level = LOG_LEVEL_LOW;
-	
-			for (i = 0; critical_checksum[i]; i++) {
-				if (!strcmp(table->name, critical_checksum[i])) {
-					log_level = LOG_LEVEL_CRITICAL;
-					break;
-				}
-			}
-
-			fwts_failed(fw, log_level, "ACPITableChecksum",
+			fwts_failed(fw, LOG_LEVEL_MEDIUM, "ACPITableChecksum",
 				"Table %s has incorrect checksum, "
 				"expected 0x%2.2x, got 0x%2.2x.",
 				table->name, (uint8_t)(hdr->checksum-checksum),
 				hdr->checksum);
 
-			/* Give some contextual explanation of the error */
-			if (log_level == LOG_LEVEL_CRITICAL)
-				fwts_advice(fw, 
-					"The kernel requires this table to have a "
-					"valid checksum and will not load it. This "
-					"will lead to ACPI not working correctly.");
-			else
-				fwts_advice(fw,
-					"The kernel will warn that this table has "
-					"an invalid checksum but will ignore the "
-					"error and still load it. This is not a "
-					"critical issue, but should be fixed if "
-					"possible to avoid the warning messages.");
+			fwts_advice(fw,
+				"The kernel will warn that this table has "
+				"an invalid checksum but will ignore the "
+				"error and still load it. This is not a "
+				"critical issue, but should be fixed if "
+				"possible to avoid the warning messages.");
 
 			fwts_tag_failed(fw, FWTS_TAG_ACPI_TABLE_CHECKSUM);
 		}
-- 
1.7.10.4





More information about the fwts-devel mailing list