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

Ira W. Snyder iws at ovro.caltech.edu
Wed Feb 3 08:36:54 EST 2010


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 routine does spin_lock_irqsave(), but 
> I now see that it drops the lock across the callback:
> 
> /* Run the link descriptor callback function */
> if (callback) {
> 	spin_unlock_irqrestore(&fsl_chan->desc_lock, flags);
> 	dev_dbg(fsl_chan->dev, "link descriptor %p callback\n", desc);
> 	callback(callback_param);
> 	spin_lock_irqsave(&fsl_chan->desc_lock, flags);
> }
> 
> ...so I retract my comment about surprising the raid5 code.

I'm glad to hear that :)

Thanks for picking up the patches.
Ira


More information about the Linuxppc-dev mailing list