On 13-03-21, 13:53, Lars-Peter Clausen wrote: > The Xilinx dmaengine driver uses a tasklet to process completed > descriptors and execute their callbacks. > > Currently consumers of the DMA channel have to no method of synchronization > against this tasklet when using the Xilinx dmaengine drivers. This can lead > to race conditions when the consumer frees resources that are accessed in > the callback before the tasklet has finished running. > > It is not enough to just call dmaengine_terminal_all() since on a > multi-processor system the tasklet can run concurrently to it and might > call the callback after dmaengine_terminate_all() has already finished. > > To mitigate this issue implement the synchronize() callback for the driver, > which will wait until the tasklet has finished. Applied, thanks -- ~Vinod