[coreboot-gerrit] Patch set updated for coreboot: rtc: Do checksum check for all bytes

Stefan Reinauer (stefan.reinauer@coreboot.org) gerrit at coreboot.org
Fri May 6 19:03:30 CEST 2016


Stefan Reinauer (stefan.reinauer at coreboot.org) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/14616

-gerrit

commit d716ccdce07ab55a5ce1bdfc235461c2024dade8
Author: Stefan Reinauer <stefan.reinauer at coreboot.org>
Date:   Wed May 4 16:16:47 2016 -0700

    rtc: Do checksum check for all bytes
    
    Due to missing braces (that went undetected because of the
    indentation), I584189d9fcf7c9b831d9c020ee7ed59bb5ae08e8
    CMOS: add set_option() only takes the last changed byte into regard
    when determining whether the checksum needs to be updated.
    
    This bug went undetected for 5 years.
    
    Change-Id: I47cedc801a60959386dfdcda3a13b8e3162a7ecb
    Signed-off-by: Stefan Reinauer <stefan.reinauer at coreboot.org>
---
 src/drivers/pc80/rtc/mc146818rtc.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/drivers/pc80/rtc/mc146818rtc.c b/src/drivers/pc80/rtc/mc146818rtc.c
index 35dad32..5fb9cf6 100644
--- a/src/drivers/pc80/rtc/mc146818rtc.c
+++ b/src/drivers/pc80/rtc/mc146818rtc.c
@@ -198,7 +198,7 @@ static enum cb_err get_cmos_value(unsigned long bit, unsigned long length,
 		uchar >>= byte_bit;	/* shift the bits to byte align */
 		/* clear unspecified bits */
 		ret[0] = uchar & ((1 << length) - 1);
-	} else {	/* more that one byte so transfer the whole bytes */
+	} else {	/* more than one byte so transfer the whole bytes */
 		for (i = 0; length; i++, length -= 8, byte++) {
 			/* load the byte */
 			ret[i] = cmos_read(byte);
@@ -284,11 +284,12 @@ static enum cb_err set_cmos_value(unsigned long bit, unsigned long length,
 		if (byte_bit || length % 8)
 			return CB_ERR_ARG;
 
-		for (i = 0; length; i++, length -= 8, byte++)
+		for (i = 0; length; i++, length -= 8, byte++) {
 			cmos_write(ret[i], byte);
 			if (byte >= LB_CKS_RANGE_START &&
 			    byte <= LB_CKS_RANGE_END)
 				chksum_update_needed = 1;
+		}
 	}
 
 	if (chksum_update_needed) {



More information about the coreboot-gerrit mailing list