]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
spi: spi-fsl-dspi: Avoid NULL pointer in dspi_slave_abort for non-DMA mode
authorVladimir Oltean <vladimir.oltean@nxp.com>
Wed, 18 Mar 2020 00:15:58 +0000 (02:15 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 17 Apr 2020 14:11:54 +0000 (16:11 +0200)
[ Upstream commit 3d6224e63be39ff26cf416492cb3923cd3d07dd0 ]

The driver does not create the dspi->dma structure unless operating in
DSPI_DMA_MODE, so it makes sense to check for that.

Fixes: f4b323905d8b ("spi: Introduce dspi_slave_abort() function for NXP's dspi SPI driver")
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Tested-by: Michael Walle <michael@walle.cc>
Link: https://lore.kernel.org/r/20200318001603.9650-8-olteanv@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/spi/spi-fsl-dspi.c

index 8428b69c858bc960db75b80279003020c7a681fd..a534b8af27b8decc1fb0960c60c70a313e6ddcc1 100644 (file)
@@ -1021,8 +1021,10 @@ static int dspi_slave_abort(struct spi_master *master)
         * Terminate all pending DMA transactions for the SPI working
         * in SLAVE mode.
         */
-       dmaengine_terminate_sync(dspi->dma->chan_rx);
-       dmaengine_terminate_sync(dspi->dma->chan_tx);
+       if (dspi->devtype_data->trans_mode == DSPI_DMA_MODE) {
+               dmaengine_terminate_sync(dspi->dma->chan_rx);
+               dmaengine_terminate_sync(dspi->dma->chan_tx);
+       }
 
        /* Clear the internal DSPI RX and TX FIFO buffers */
        regmap_update_bits(dspi->regmap, SPI_MCR,