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 _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev