diff options
author | Ulf Hansson <ulf.hansson@linaro.org> | 2016-01-27 09:10:37 +0100 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2016-01-27 23:01:25 +0100 |
commit | cdb300a041f5df1dfbde1367f95109b6449d1371 (patch) | |
tree | d4432a4fedc2b1938268531044856f34f1b87f0a /drivers/cpuidle | |
parent | 0106ef5146f9e89e4dc9354f308ecaddb9617310 (diff) | |
download | blackbird-op-linux-cdb300a041f5df1dfbde1367f95109b6449d1371.tar.gz blackbird-op-linux-cdb300a041f5df1dfbde1367f95109b6449d1371.zip |
PM / Domains: Fix potential deadlock while adding/removing subdomains
We must preserve the same order of how we acquire and release the lock for
genpd, as otherwise we may encounter deadlocks.
The power on phase of a genpd starts by acquiring its lock. Then it walks
the hierarchy of its parent domains to be able to power on these first, as
per design of genpd.
From a locking perspective this means the locks of the parents becomes
acquired after the lock of the subdomain.
Let's fix pm_genpd_add|remove_subdomain() to maintain the same order of
acquiring/releasing the genpd lock as being applied in the power on/off
sequence.
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'drivers/cpuidle')
0 files changed, 0 insertions, 0 deletions