diff options
author | Mark Brown <broonie@linaro.org> | 2013-07-10 18:05:40 +0400 |
---|---|---|
committer | Mark Brown <broonie@linaro.org> | 2013-07-15 14:34:51 +0400 |
commit | 24a0013a04e81e95198daab98edf4df02e191568 (patch) | |
tree | 29a38cf235195f69ef09453ec440c6045627f47a /drivers/spi/spi.c | |
parent | a2fd4f9fa3b9f051550b36c4dfa74bc32bda24ee (diff) | |
download | linux-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.c | 5 |
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 |