[coreboot-gerrit] New patch to review for coreboot: drivers/pc80/rtc: Check cmos checksum BEFORE reading cmos value

Martin Roth (martinroth@google.com) gerrit at coreboot.org
Wed Jan 25 19:01:14 CET 2017


Martin Roth (martinroth at google.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/18236

-gerrit

commit 32050a709e9c9431e17952bacfe663f85b12965c
Author: Martin Roth <martinroth at google.com>
Date:   Wed Jan 25 11:00:18 2017 -0700

    drivers/pc80/rtc: Check cmos checksum BEFORE reading cmos value
    
    If cmos is invalid, it doesn't make sense to read the value before
    finding that out.
    
    Change-Id: Ieb4661aad7e4d640772325c3c6b184de1947edc3
    Signed-off-by: Martin Roth <martinroth at google.com>
---
 src/drivers/pc80/rtc/mc146818rtc.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/drivers/pc80/rtc/mc146818rtc.c b/src/drivers/pc80/rtc/mc146818rtc.c
index 0d36b00..a102917 100644
--- a/src/drivers/pc80/rtc/mc146818rtc.c
+++ b/src/drivers/pc80/rtc/mc146818rtc.c
@@ -251,14 +251,14 @@ enum cb_err get_option(void *dest, const char *name)
 		return CB_CMOS_OPTION_NOT_FOUND;
 	}
 
-	if (get_cmos_value(ce->bit, ce->length, dest) != CB_SUCCESS) {
-		UNLOCK_NVRAM_CBFS_SPINLOCK();
-		return CB_CMOS_ACCESS_ERROR;
-	}
 	if (!cmos_checksum_valid(LB_CKS_RANGE_START, LB_CKS_RANGE_END, LB_CKS_LOC)) {
 		UNLOCK_NVRAM_CBFS_SPINLOCK();
 		return CB_CMOS_CHECKSUM_INVALID;
 	}
+	if (get_cmos_value(ce->bit, ce->length, dest) != CB_SUCCESS) {
+		UNLOCK_NVRAM_CBFS_SPINLOCK();
+		return CB_CMOS_ACCESS_ERROR;
+	}
 	UNLOCK_NVRAM_CBFS_SPINLOCK();
 	return CB_SUCCESS;
 }



More information about the coreboot-gerrit mailing list