summaryrefslogtreecommitdiffstats
path: root/drivers/dma/fsl_raid.c
diff options
context:
space:
mode:
authorVinod Koul <vinod.koul@intel.com>2016-07-01 19:18:49 +0200
committerVinod Koul <vinod.koul@intel.com>2016-07-16 16:48:59 +0200
commitcb28c7ab786b3e77f8435a41929b3ee9bcc51eb1 (patch)
tree42bad6268d5e1c1508d39c6963b07ab63d386031 /drivers/dma/fsl_raid.c
parentdmaengine: fsl-edma: explicitly freeup irq (diff)
downloadlinux-cb28c7ab786b3e77f8435a41929b3ee9bcc51eb1.tar.xz
linux-cb28c7ab786b3e77f8435a41929b3ee9bcc51eb1.zip
dmaengine: fsl_raid: 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: Xuelin Shi <xuelin.shi@freescale.com>
Diffstat (limited to 'drivers/dma/fsl_raid.c')
-rw-r--r--drivers/dma/fsl_raid.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/dma/fsl_raid.c b/drivers/dma/fsl_raid.c
index 4d9470f16552..1b71d1fea395 100644
--- a/drivers/dma/fsl_raid.c
+++ b/drivers/dma/fsl_raid.c
@@ -856,6 +856,8 @@ static int fsl_re_probe(struct platform_device *ofdev)
static void fsl_re_remove_chan(struct fsl_re_chan *chan)
{
+ tasklet_kill(&chan->irqtask);
+
dma_pool_free(chan->re_dev->hw_desc_pool, chan->inb_ring_virt_addr,
chan->inb_phys_addr);