On Mon, Mar 2, 2009 at 3:35 PM, Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote: > > > On Mon, 2 Mar 2009, Linus Torvalds wrote: >> >> If IRQ_SUSPENDED _is_ set, then that means that we're after the >> suspend_late() sequence and before the resume_early() sequence > > Sorry, after the suspend, and before the resume. > > We could be _in_ the suspend_late/resume_early sequence, but a driver that > were to try to play with interrupts at that stage would be broken. It > can't very well do a enable_irq(), because that would be a MAJOR BUG - it > would make the whole irq suspend thing pointless, since now interrupts > would start to happen exactly where they must not happen! It may be pointless for a driver to call disable_irq and enable_irq from suspend_late or resume_early (instead of suspend and resume), but I would not call it a bug. Since disable_irq and enable_irq are reference counted all this is doing is indicating that this driver can or cannot accept interrupts. If you want to make an additional restriction that drivers are not allowed to call disable_irq or enable_irq from suspend_late and resume_early, then yes you can tell that enable_irq was called from resume_device_irqs. I don't know of any drivers that do this, I was just pointing out the danger of releasing a reference without knowing if you acquired that reference. -- Arve Hjønnevåg _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm