spi: bcm2835aux: remove dangerous uncontrolled read of fifo
authorMartin Sperl <kernel@martin.sperl.org>
Sat, 30 Mar 2019 09:30:59 +0000 (09:30 +0000)
committerMark Brown <broonie@kernel.org>
Wed, 3 Apr 2019 04:31:06 +0000 (11:31 +0700)
This read of the fifo is a potential candidate for a race condition
as the spi transfer is not necessarily finished and so can lead to
an early read of the fifo that still misses data.

So it has been removed.

Fixes: 1ea29b39f4c812ec ("spi: bcm2835aux: add bcm2835 auxiliary spi device...")
Suggested-by: Hubert Denkmair <h.denkmair@intence.de>
Signed-off-by: Martin Sperl <kernel@martin.sperl.org>
Acked-by: Stefan Wahren <stefan.wahren@i2se.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-bcm2835aux.c

index 41366d0a16af3ee497258fcc23c704e414feb629..0838dbda57c78d28442734030a24e95803ee8f26 100644 (file)
@@ -194,13 +194,6 @@ static void bcm2835aux_spi_transfer_helper(struct bcm2835aux_spi *bs)
                  BCM2835_AUX_SPI_STAT_TX_FULL))) {
                bcm2835aux_wr_fifo(bs);
        }
-
-       /* and check if we have reached "done" */
-       while (bs->rx_len &&
-              (!(bcm2835aux_rd(bs, BCM2835_AUX_SPI_STAT) &
-                 BCM2835_AUX_SPI_STAT_BUSY))) {
-               bcm2835aux_rd_fifo(bs);
-       }
 }
 
 static irqreturn_t bcm2835aux_spi_interrupt(int irq, void *dev_id)