summaryrefslogtreecommitdiff
path: root/drivers/spi/spi.c
diff options
context:
space:
mode:
authorMark Brown <broonie@linaro.org>2013-07-10 18:05:40 +0400
committerMark Brown <broonie@linaro.org>2013-07-15 14:34:51 +0400
commit24a0013a04e81e95198daab98edf4df02e191568 (patch)
tree29a38cf235195f69ef09453ec440c6045627f47a /drivers/spi/spi.c
parenta2fd4f9fa3b9f051550b36c4dfa74bc32bda24ee (diff)
downloadlinux-24a0013a04e81e95198daab98edf4df02e191568.tar.xz
spi: More sanity checks for transfers
Check that transfers are non-empty and that there is a completion for them. Signed-off-by: Mark Brown <broonie@linaro.org>
Diffstat (limited to 'drivers/spi/spi.c')
-rw-r--r--drivers/spi/spi.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
index a52f16685d6a..c2899161ccac 100644
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
@@ -1351,6 +1351,11 @@ static int __spi_async(struct spi_device *spi, struct spi_message *message)
struct spi_master *master = spi->master;
struct spi_transfer *xfer;
+ if (list_empty(&message->transfers))
+ return -EINVAL;
+ if (!message->complete)
+ return -EINVAL;
+
/* Half-duplex links include original MicroWire, and ones with
* only one data pin like SPI_3WIRE (switches direction) or where
* either MOSI or MISO is missing. They can also be caused by