diff options
author | Dan Carpenter <dan.carpenter@oracle.com> | 2017-01-13 08:42:53 +0100 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2017-01-17 18:58:51 +0100 |
commit | 72bc7ae0633e2b580217d254114ac6650380b7f6 (patch) | |
tree | 123cbc06ba55dbe34bf0ea7ea6c16f788c082720 /drivers/spi | |
parent | spi: s3c64xx: Don't request/release DMA channels for each SPI transfer (diff) | |
download | linux-72bc7ae0633e2b580217d254114ac6650380b7f6.tar.xz linux-72bc7ae0633e2b580217d254114ac6650380b7f6.zip |
spi: s3c64xx: potential oops on probe error
We accidentally mixed up freeing the rx and tx channels which would a
leak and an oops.
Fixes: 3d63a47a380a ("spi: s3c64xx: Don't request/release DMA channels for each SPI transfer")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: Marek Szyprowski <m.szyprowski@samsung.com>
Acked-by: Andi Shyti <andi.shyti@samsung.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'drivers/spi')
-rw-r--r-- | drivers/spi/spi-s3c64xx.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/spi/spi-s3c64xx.c b/drivers/spi/spi-s3c64xx.c index 849ee82483e4..b8cd356d8d10 100644 --- a/drivers/spi/spi-s3c64xx.c +++ b/drivers/spi/spi-s3c64xx.c @@ -1147,7 +1147,7 @@ static int s3c64xx_spi_probe(struct platform_device *pdev) if (IS_ERR(sdd->tx_dma.ch)) { dev_err(&pdev->dev, "Failed to get TX DMA channel\n"); ret = PTR_ERR(sdd->tx_dma.ch); - goto err_release_tx_dma; + goto err_release_rx_dma; } } @@ -1197,10 +1197,10 @@ err_pm_put: pm_runtime_set_suspended(&pdev->dev); if (!is_polling(sdd)) - dma_release_channel(sdd->rx_dma.ch); -err_release_tx_dma: - if (!is_polling(sdd)) dma_release_channel(sdd->tx_dma.ch); +err_release_rx_dma: + if (!is_polling(sdd)) + dma_release_channel(sdd->rx_dma.ch); err_disable_io_clk: clk_disable_unprepare(sdd->ioclk); err_disable_src_clk: |