[coreboot-gerrit] New patch to review for coreboot: fixamdspi: checkout bytesout is > 0 before decrementing

Ronald G. Minnich (rminnich@gmail.com) gerrit at coreboot.org
Tue Jan 10 01:39:56 CET 2017


Ronald G. Minnich (rminnich at gmail.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/18080

-gerrit

commit 94a09342ea7e5f955693f0ff45cef80d51df0fc8
Author: Ronald G. Minnich <rminnich at google.com>
Date:   Mon Jan 9 16:37:07 2017 -0800

    fixamdspi: checkout bytesout is > 0 before decrementing
    
    The variable bytesout was being decremented without
    seeing if it was zero, resulting in it being kind of
    large, leading to an error.
    
    This fixes the problem introduced in c2973d19.
    
    Thanks Kyosti!
    
    Change-Id: Ica4d2423cbccfd7cb55fe572b140de50b836dd14
    Signed-off-by: Ronald G. Minnich <rminnich at google.com>
---
 src/southbridge/amd/agesa/hudson/spi.c | 3 ++-
 src/southbridge/amd/cimx/sb800/spi.c   | 3 ++-
 src/southbridge/amd/sb700/spi.c        | 3 ++-
 3 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/southbridge/amd/agesa/hudson/spi.c b/src/southbridge/amd/agesa/hudson/spi.c
index 00f6b29..42176c3 100644
--- a/src/southbridge/amd/agesa/hudson/spi.c
+++ b/src/southbridge/amd/agesa/hudson/spi.c
@@ -98,7 +98,8 @@ static int spi_ctrlr_xfer(const struct spi_slave *slave, const void *dout,
 	u8 readoffby1;
 	size_t count;
 
-	bytesout--;
+	if (bytesout)
+		bytesout--;
 
 	/*
 	 * Check if this is a write command attempting to transfer more bytes
diff --git a/src/southbridge/amd/cimx/sb800/spi.c b/src/southbridge/amd/cimx/sb800/spi.c
index 1e84743..7acb5ae 100644
--- a/src/southbridge/amd/cimx/sb800/spi.c
+++ b/src/southbridge/amd/cimx/sb800/spi.c
@@ -68,7 +68,8 @@ static int spi_ctrlr_xfer(const struct spi_slave *slave, const void *dout,
 	u8 readwrite;
 	size_t count;
 
-	bytesout--;
+	if (bytesout)
+		bytesout--;
 
 	/*
 	 * Check if this is a write command attempting to transfer more bytes
diff --git a/src/southbridge/amd/sb700/spi.c b/src/southbridge/amd/sb700/spi.c
index 5d56415..3ff5a5c 100644
--- a/src/southbridge/amd/sb700/spi.c
+++ b/src/southbridge/amd/sb700/spi.c
@@ -76,7 +76,8 @@ static int spi_ctrlr_xfer(const struct spi_slave *slave, const void *dout,
 
 	uint32_t spibar = get_spi_bar();
 
-	bytesout--;
+	if (bytesout)
+		bytesout--;
 
 	/*
 	 * Check if this is a write command attempting to transfer more bytes



More information about the coreboot-gerrit mailing list