Hi! > > When using runtime PM in combination with CPUidle, the runtime PM > > transtions of some devices may be triggered during the idle path. > > Late in the idle sequence, interrupts will likely be disabled when > > runtime PM for these devices is initiated. > > > > Currently, the runtime PM core assumes methods are called with > > interrupts enabled. However, if it is called with interrupts > > disabled, the internal locking unconditionally enables interrupts, for > > example: > > ... > > > Unconditionally enabling interrupts late in the idle sequence is not > > desired behavior. To fix, use the save/restore versions of the > > spinlock API. > > > > Reported-by: Partha Basak <p-basak2@xxxxxx> > > Signed-off-by: Kevin Hilman <khilman@xxxxxxxxxxxxxxxxxxx> > > --- > > RFC: I'm not crazy about having the 'flags' in struct dev_pm_info, but > > since the locks are taken and released in separate functions, this > > seems better than changing the function APIs to pass around the flags. > > There are restrictions on what you're allowed to do with the flags, but > I don't remember exactly what they are. There used to be 'flags must local variable, and enable/disable must happen in same function' restriction on sparc. Not sure if it is still present. Ask davem? Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html