[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