Re: [PATCH 8/8] fsldma: major cleanups and fixes

2010-02-02 Thread Ira W. Snyder
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

Re: [PATCH 8/8] fsldma: major cleanups and fixes

2010-02-02 Thread Dan Williams
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

Re: [PATCH 8/8] fsldma: major cleanups and fixes

2010-02-02 Thread Ira W. Snyder
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

Re: [PATCH 8/8] fsldma: major cleanups and fixes

2010-02-02 Thread Dan Williams
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

[PATCH 8/8] fsldma: major cleanups and fixes

2010-01-06 Thread Ira W. Snyder
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

[PATCH 8/8] fsldma: major cleanups and fixes

2009-12-31 Thread Ira W. Snyder
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