On Tuesday, January 9, 2018 6:12:09 PM EST Qi Hou wrote: > If that, there will be a hidden deadlock. As to irq handler of pl330, > get pl330->lock first, > then pch->lock. As to tasklet of PL330, pch->lockfirst, then > pl330->lock. It have been > verified when I enabled the kernel lock debug option. > > And after tracing the changelogs of the driver of the DMA controller > PL330, I have to stay back. > The pair of unlock/lock staffs is there since the original commit. It > seems that the author > intent to do things like that. > > If it's hard to trace the author's intention, maybe the advised fix > below could be taken, since > there is no side effect. And it achieves the same goal as the original > wants to. I'd like to see this patch get applied, it seems to have been sitting in the dmaengine patchwork as a RFC for a while now. We've hit this same problem (by using irq affinity to spread the pl330 interrupts across multiple cpus rather than using threadirqs) and the patch fixed it. Reviewed-by: Frank Mori Hess <fmh6jj@xxxxxxxxx> Tested-by: Frank Mori Hess <fmh6jj@xxxxxxxxx> -- 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