On Mon, 7 Jun 2010, Esben Haabendal wrote: > On Mon, Jun 7, 2010 at 5:06 PM, Thomas Gleixner <t...@linutronix.de> wrote: > > > Maybe you understand now, why I was pretty sure upfront, that your > > approach was wrong even without knowing all the gory details ? :) > > I understand. There is a better solution, which is to use threaded > interrupts where needed.
FWIW, it just occured to me, that the only reason why the disable_irq_nosysnc() trips up on the in_atomic() check is your fiddling with the nested irq dispatcher. If you just would have changed the phy driver to request_irq_any_context() it would have simply worked out of the box, without any need to remove buslock and changing genirq code at all. That would not give you the advantage of getting rid of the two additional I2C transfers, but that's nn optimzation not a functional requirement. Thanks, tglx _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev