spi: More sanity checks for transfers
[GitHub/exynos8895/android_kernel_samsung_universal8895.git] / drivers / spi / spi.c
index a52f16685d6aa40b18c642322ce7e9af7c6c9f48..c2899161ccacf8a6ecaebd807ef2613349104cae 100644 (file)
@@ -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