From: Brian Niebuhr <[email protected]>

In the davinci_spi_{tx|rx}_u{8|16}() functions, check for
buffer pointer being valid before using it. While providing
for better error checking, this change will help simplify
code in the caller.

Signed-off-by: Brian Niebuhr <[email protected]>
Tested-By: Michael Williamson <[email protected]>
Signed-off-by: Sekhar Nori <[email protected]>
---
 drivers/spi/davinci_spi.c |   40 ++++++++++++++++++++++------------------
 1 files changed, 22 insertions(+), 18 deletions(-)

diff --git a/drivers/spi/davinci_spi.c b/drivers/spi/davinci_spi.c
index b0b338f..10b0a08 100644
--- a/drivers/spi/davinci_spi.c
+++ b/drivers/spi/davinci_spi.c
@@ -158,37 +158,41 @@ static unsigned use_dma;
 
 static void davinci_spi_rx_buf_u8(u32 data, struct davinci_spi *davinci_spi)
 {
-       u8 *rx = davinci_spi->rx;
-
-       *rx++ = (u8)data;
-       davinci_spi->rx = rx;
+       if (davinci_spi->rx) {
+               u8 *rx = davinci_spi->rx;
+               *rx++ = (u8)data;
+               davinci_spi->rx = rx;
+       }
 }
 
 static void davinci_spi_rx_buf_u16(u32 data, struct davinci_spi *davinci_spi)
 {
-       u16 *rx = davinci_spi->rx;
-
-       *rx++ = (u16)data;
-       davinci_spi->rx = rx;
+       if (davinci_spi->rx) {
+               u16 *rx = davinci_spi->rx;
+               *rx++ = (u16)data;
+               davinci_spi->rx = rx;
+       }
 }
 
 static u32 davinci_spi_tx_buf_u8(struct davinci_spi *davinci_spi)
 {
-       u32 data;
-       const u8 *tx = davinci_spi->tx;
-
-       data = *tx++;
-       davinci_spi->tx = tx;
+       u32 data = 0;
+       if (davinci_spi->tx) {
+               const u8 *tx = davinci_spi->tx;
+               data = *tx++;
+               davinci_spi->tx = tx;
+       }
        return data;
 }
 
 static u32 davinci_spi_tx_buf_u16(struct davinci_spi *davinci_spi)
 {
-       u32 data;
-       const u16 *tx = davinci_spi->tx;
-
-       data = *tx++;
-       davinci_spi->tx = tx;
+       u32 data = 0;
+       if (davinci_spi->tx) {
+               const u16 *tx = davinci_spi->tx;
+               data = *tx++;
+               davinci_spi->tx = tx;
+       }
        return data;
 }
 
-- 
1.7.3.2


------------------------------------------------------------------------------
Beautiful is writing same markup. Internet Explorer 9 supports
standards for HTML5, CSS3, SVG 1.1,  ECMAScript5, and DOM L2 & L3.
Spend less time writing and  rewriting code and more time creating great
experiences on the web. Be a part of the beta today
http://p.sf.net/sfu/msIE9-sfdev2dev
_______________________________________________
spi-devel-general mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/spi-devel-general

Reply via email to