On Mon, Dec 30, 2019 at 09:45:55PM +0100, Michał Mirosław wrote: > On Sat, Dec 28, 2019 at 11:46:36PM +0300, Dmitry Osipenko wrote: > > It's unsafe to check the channel's "busy" state without taking a lock, > > it is also unsafe to assume that tasklet isn't in-fly. > > 'in-flight'. Also, the patch seems to have two independent bug-fixes > in it. Second one doesn't look right, at least not without an explanation. > > First: > > > - if (tdc->busy) > > - tegra_dma_terminate_all(dc); > > + tegra_dma_terminate_all(dc); > > Second: > > > + tasklet_kill(&tdc->tasklet); BTW, maybe you can convert the code to threaded interrupt handler and just get rid of the tasklet instead of fixing it? Best Regards, Michał Mirosław