On Tue, Feb 02, 2010 at 02:23:08PM -0700, Dan Williams wrote:
> Ira W. Snyder wrote:
> > In the fsldma driver, all callbacks are run from tasklet (softirq)
> > context. That's under local_irq_disable(), right? Hardirq's certainly
> > aren't disabled there.
>
> Actually, my mistake, the cleanup rou
Ira W. Snyder wrote:
In the fsldma driver, all callbacks are run from tasklet (softirq)
context. That's under local_irq_disable(), right? Hardirq's certainly
aren't disabled there.
Actually, my mistake, the cleanup routine does spin_lock_irqsave(), but
I now see that it drops the lock across t
On Tue, Feb 02, 2010 at 02:02:44PM -0700, Dan Williams wrote:
> Ira W. Snyder wrote:
> > Fix locking. Use two queues in the driver, one for pending transacions, and
> > one for transactions which are actually running on the hardware. Call
> > dma_run_dependencies() on descriptor cleanup so that the
Ira W. Snyder wrote:
Fix locking. Use two queues in the driver, one for pending transacions, and
one for transactions which are actually running on the hardware. Call
dma_run_dependencies() on descriptor cleanup so that the async_tx API works
correctly.
I notice that fsldma diverges from other
Fix locking. Use two queues in the driver, one for pending transacions, and
one for transactions which are actually running on the hardware. Call
dma_run_dependencies() on descriptor cleanup so that the async_tx API works
correctly.
There are a number of places throughout the code where lists of d
Fix locking. Use two queues in the driver, one for pending transacions, and
one for transactions which are actually running on the hardware. Call
dma_run_dependencies() on descriptor cleanup so that the async_tx API works
correctly.
There are a number of places throughout the code where lists of d