On Tue, Jul 5, 2016 at 4:54 PM, Vinod Koul <vinod.koul@xxxxxxxxx> wrote: > drivers should ensure that tasklets are killed, so that they can't be > executed after driver remove is executed, so ensure they are killed. > > This driver used vchan tasklets, so those need to be killed. > > Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx> > Cc: Krzysztof Kozlowski <k.kozlowski.k@xxxxxxxxx> > --- > drivers/dma/s3c24xx-dma.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/dma/s3c24xx-dma.c b/drivers/dma/s3c24xx-dma.c > index 163d95f339e6..ce67075589f5 100644 > --- a/drivers/dma/s3c24xx-dma.c > +++ b/drivers/dma/s3c24xx-dma.c > @@ -1136,8 +1136,10 @@ static void s3c24xx_dma_free_virtual_channels(struct dma_device *dmadev) > struct s3c24xx_dma_chan *next; > > list_for_each_entry_safe(chan, > - next, &dmadev->channels, vc.chan.device_node) > + next, &dmadev->channels, vc.chan.device_node) { > list_del(&chan->vc.chan.device_node); > + tasklet_kill(&chan->vc.task); > + } > } Looks correct: Reviewed-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx> Unrelated to the patch: this looks obfuscated that driver uses virt-dma helper for init but has to clean up on its own. Some helper vchan_exit() or vchan_free() would be useful here. Best regards, Krzysztof -- To unsubscribe from this list: send the line "unsubscribe dmaengine" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html