[PATCH] acpi: checksum: print RSDP checksum correctly (LP: #1287815)

Colin King colin.king at canonical.com
Tue Mar 4 17:36:45 UTC 2014


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

Printing out checksum on RSDP when it is in error is incorrect due
to a parenthesis being in the wrong place.  Also using PRIx8 macro
for printing uint8_t values.

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

diff --git a/src/acpi/checksum/checksum.c b/src/acpi/checksum/checksum.c
index ad8cc0c..bac266d 100644
--- a/src/acpi/checksum/checksum.c
+++ b/src/acpi/checksum/checksum.c
@@ -23,6 +23,8 @@
 #include <fcntl.h>
 #include <dirent.h>
 #include <stdbool.h>
+#include <stdint.h>
+#include <inttypes.h>
 
 #include "fwts.h"
 
@@ -44,15 +46,15 @@ static void checksum_rsdp(fwts_framework *fw, fwts_acpi_table_info *table)
 	checksum = fwts_checksum(table->data, 20);
 	if (checksum != 0) {
 		fwts_failed(fw, LOG_LEVEL_CRITICAL, "ACPITableChecksumRSDP",
-			"RSDP has incorrect checksum, expected 0x%2.2x, "
-			"got 0x%2.2x.",
-			(uint8_t)(rsdp->checksum)-checksum, rsdp->checksum);
+			"RSDP has incorrect checksum, expected 0x%2.2" PRIx8 ", "
+			"got 0x%2.2" PRIx8 ".",
+			(uint8_t)(rsdp->checksum-checksum), rsdp->checksum);
 		fwts_advice(fw,
 			"The kernel will not load the RSDP with an "
 			"invalid checksum and hence all other ACPI "
 			"tables will also fail to load.");
 	} else
-		fwts_passed(fw, "Table RSDP has correct checksum 0x%x.",
+		fwts_passed(fw, "Table RSDP has correct checksum 0x%2.2" PRIx8 ".",
 			rsdp->checksum);
 
 	/* 
@@ -75,7 +77,7 @@ static void checksum_rsdp(fwts_framework *fw, fwts_acpi_table_info *table)
 			fwts_failed(fw, LOG_LEVEL_CRITICAL,
 				"ACPITableChecksumRSDP",
 				"RSDP has incorrect extended checksum, "
-				"expected 0x%2.2x, got 0x%2.2x.",
+				"expected 0x%2.2" PRIx8 ", got 0x%2.2" PRIx8 ".",
 				(uint8_t)(rsdp->extended_checksum-checksum),
 				rsdp->extended_checksum);
 			fwts_advice(fw, 
@@ -84,7 +86,7 @@ static void checksum_rsdp(fwts_framework *fw, fwts_acpi_table_info *table)
 				"other ACPI tables will also fail to load.");
 		} else
 			fwts_passed(fw, "Table RSDP has correct extended "
-				"checksum 0x%x.", rsdp->extended_checksum);
+				"checksum 0x%2.2" PRIx8 ".", rsdp->extended_checksum);
 	}
 
 }
@@ -118,12 +120,12 @@ static int checksum_scan_tables(fwts_framework *fw)
 
 		checksum = fwts_checksum(table->data, table->length);
 		if (checksum == 0)
-			fwts_passed(fw, "Table %s has correct checksum 0x%x.",
+			fwts_passed(fw, "Table %s has correct checksum 0x%2.2" PRIx8,
 				table->name, hdr->checksum);
 		else {
 			fwts_failed(fw, LOG_LEVEL_MEDIUM, "ACPITableChecksum",
 				"Table %s has incorrect checksum, "
-				"expected 0x%2.2x, got 0x%2.2x.",
+				"expected 0x%2.2" PRIx8 ", got 0x%2.2" PRIx8 ".",
 				table->name, (uint8_t)(hdr->checksum-checksum),
 				hdr->checksum);
 
-- 
1.9.0




More information about the fwts-devel mailing list