Re: [PATCH 2/6] dmaengine: rcar-dmac: Fix spinlock issues in interrupt

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

 



Hello.

On 01/27/2015 10:08 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.

   BTW, the interrupt of the same # is still guaranteed to not occur, IIUC.

Signed-off-by: Laurent Pinchart
<laurent.pinchart+renesas@xxxxxxxxxxxxxxxx>

WBR, Sergei

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