On 17-07-18, 11:48, John Keeping wrote: > In pl330_update() when checking if a channel has been aborted, the > channel's lock is not taken, only the overall pl330_dmac lock. But in > pl330_terminate_all() the aborted flag (req_running==-1) is set under > the channel lock and not the pl330_dmac lock. > > With threaded interrupts, this leads to a potential race: > > pl330_terminate_all pl330_update > ------------------- ------------ > lock channel > entry > lock pl330 > _stop channel > unlock pl330 > lock pl330 > check req_running != -1 > req_running = -1 > _start channel > Applied, thanks -- ~Vinod -- 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