summaryrefslogtreecommitdiffstats
path: root/drivers/dma
diff options
context:
space:
mode:
authorVinod Koul <vinod.koul@intel.com>2016-07-05 11:56:10 +0530
committerVinod Koul <vinod.koul@intel.com>2016-07-23 16:07:24 +0530
commit1f11e37729d7bedd5c9aba59550f694307b7efd9 (patch)
treeb73e32d2b2f464dd9abc1102c9ae498fcb9f3bbd /drivers/dma
parent7e654bf7c10162c3cc7fed5c520a2adef9d6e8f7 (diff)
downloadlinux-1f11e37729d7bedd5c9aba59550f694307b7efd9.tar.gz
linux-1f11e37729d7bedd5c9aba59550f694307b7efd9.tar.bz2
linux-1f11e37729d7bedd5c9aba59550f694307b7efd9.zip
dmaengine: sirf-dma: kill the tasklets upon exit
drivers should ensure that tasklets are killed, so that they can't be run after driver remove is executed Signed-off-by: Vinod Koul <vinod.koul@intel.com> Cc: Barry Song <Baohua.Song@csr.com>
Diffstat (limited to 'drivers/dma')
-rw-r--r--drivers/dma/sirf-dma.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/dma/sirf-dma.c b/drivers/dma/sirf-dma.c
index 906877919cf3..d8bc3f2a71db 100644
--- a/drivers/dma/sirf-dma.c
+++ b/drivers/dma/sirf-dma.c
@@ -980,6 +980,7 @@ static int sirfsoc_dma_remove(struct platform_device *op)
of_dma_controller_free(op->dev.of_node);
dma_async_device_unregister(&sdma->dma);
free_irq(sdma->irq, sdma);
+ tasklet_kill(&sdma->tasklet);
irq_dispose_mapping(sdma->irq);
pm_runtime_disable(&op->dev);
if (!pm_runtime_status_suspended(&op->dev))