On Wed, 11 Mar 2009, Thomas Gleixner wrote: > On Wed, 11 Mar 2009, Rafael J. Wysocki wrote: > > On Wednesday 11 March 2009, Thomas Gleixner wrote: > > > > +EXPORT_SYMBOL_GPL(suspend_device_irqs); > > > > > > I'm not too enthusiastic about this open coded implementation of > > > disable_irq() with slightly different semantics. > > > > The difference in semantics is important IMO, otherwise I woulndn't have > > done that. In particular, IMO, the condition should be under the spinlock IMO > > and I'd rather not synchronize all interrupts we don't really disable here. > > I don't say that the difference is not relevant. But the code is > almost the same and disable_irq() could have the sync_irq optimization > as well. Thought more about that. Avoiding the sync_irq() for irqs which have no action associated is fine, but you need to catch the following case as well: driver code calls disable_irq_nosyc() from the handler (which is still running) suspend code skips the sync due to depth > 0 The sync operation is not that expensive. Thanks, tglx _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm