Re: [RFC] dmaengine: pl330: fix a race condition in case of threaded irqs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 2018年03月05日 23:24, Frank Mori Hess wrote:
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>

Thanks, I will submit it as a official patch.

// qhou

--
Best regards,
Qi Hou
Phone number: +86-10-8477-8608
Address: Floor 15, Building B, Wangjing Plaza, No.9 Zhong-Huan Nanlu, Chaoyang District

--
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



[Index of Archives]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux PCI]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux