summaryrefslogtreecommitdiffstats
path: root/drivers/mmc/host/bcm2835.c
diff options
context:
space:
mode:
authorLukas Wunner <lukas@wunner.de>2019-01-19 16:31:00 +0100
committerUlf Hansson <ulf.hansson@linaro.org>2019-01-28 12:43:19 +0100
commit8c9620b1cc9b69e82fa8d4081d646d0016b602e7 (patch)
tree65f7ee4ffcee8d26a354f203cffbb677c01eb67b /drivers/mmc/host/bcm2835.c
parentLinux 5.0-rc4 (diff)
downloadlinux-8c9620b1cc9b69e82fa8d4081d646d0016b602e7.tar.xz
linux-8c9620b1cc9b69e82fa8d4081d646d0016b602e7.zip
mmc: bcm2835: Fix DMA channel leak on probe error
The BCM2835 MMC host driver requests a DMA channel on probe but neglects to release the channel in the probe error path. The channel may therefore be leaked, in particular if devm_clk_get() causes probe deferral. Fix it. Fixes: 660fc733bd74 ("mmc: bcm2835: Add new driver for the sdhost controller.") Signed-off-by: Lukas Wunner <lukas@wunner.de> Cc: stable@vger.kernel.org # v4.12+ Cc: Frank Pavlic <f.pavlic@kunbus.de> Tested-by: Stefan Wahren <stefan.wahren@i2se.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Diffstat (limited to 'drivers/mmc/host/bcm2835.c')
-rw-r--r--drivers/mmc/host/bcm2835.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/mmc/host/bcm2835.c b/drivers/mmc/host/bcm2835.c
index 50293529d6de..c9e7aa50bb0a 100644
--- a/drivers/mmc/host/bcm2835.c
+++ b/drivers/mmc/host/bcm2835.c
@@ -1431,6 +1431,8 @@ static int bcm2835_probe(struct platform_device *pdev)
err:
dev_dbg(dev, "%s -> err %d\n", __func__, ret);
+ if (host->dma_chan_rxtx)
+ dma_release_channel(host->dma_chan_rxtx);
mmc_free_host(mmc);
return ret;