Re: [linux-pm] [PATCH] PM: runtime PM + idle: allow usage when interrupts are disabled

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux