Hi Sergei, On Tuesday 27 January 2015 22:01:18 Sergei Shtylyov wrote: > On 01/27/2015 09:55 PM, Laurent Pinchart wrote: > >> On 01/27/2015 08:25 PM, Laurent Pinchart wrote: > >> > >> [...] > >> > >>> Furthermore, as the driver can be used on SMP systems, the IRQ handlers > >>> must use spin_lock_irqsave() instead of spin_lock(). > >> > >> Hmm, care to explain why? It's the first time I'm hearing that... > >> This looks especially strange in the context of the current genirq code > >> calling IRQ handlers with interrupts always disabled. > > > > I should have been more precise here. > > > > The DMAC has several interrupt sources than can occur simultaneously. > > While genirq should guarantee that an interrupt will not be preempted by > > another interrupt (including itself) on the same CPU, does it offer that > > guarantee across CPUs in an SMP system ? > > No. But spin_lock_irqsave() wouldn't help with that -- it only disables > interrupts on the local CPU... You're of course right. I'm not sure what I was thinking. I'll send a v2 after waiting for review of the other patches. > >>> Signed-off-by: Laurent Pinchart > >>> <laurent.pinchart+renesas@xxxxxxxxxxxxxxxx> -- Regards, Laurent Pinchart -- 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