[PATCH 8/8] fsldma: major cleanups and fixes
Dan Williams
dan.j.williams at intel.com
Wed Feb 3 08:23:08 EST 2010
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.
--
Dan
More information about the Linuxppc-dev
mailing list