diff options
author | Ulf Hansson <ulf.hansson@linaro.org> | 2013-11-13 09:45:03 -0500 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2013-11-13 18:48:19 -0500 |
commit | aa1b9f13b3346352455bfdc343ecff7667b84ff5 (patch) | |
tree | 03974c3bb35582ce372d66b6017413146c7e2be1 /drivers/base | |
parent | ea309944e226d655d7d4adca9623c575ba786bbe (diff) |
PM / Runtime: Fix error path for prepare
If a device prepare callback for some reason would fail, the PM core
prevented the device from going inactive forever.
In this case, to reverse the pm_runtime_get_noresume() we invokes the
asyncronous pm_runtime_put(), thus restoring the usage count.
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'drivers/base')
-rw-r--r-- | drivers/base/power/main.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c index 9f098a82cf04..97db7552e90a 100644 --- a/drivers/base/power/main.c +++ b/drivers/base/power/main.c | |||
@@ -1277,6 +1277,9 @@ static int device_prepare(struct device *dev, pm_message_t state) | |||
1277 | 1277 | ||
1278 | device_unlock(dev); | 1278 | device_unlock(dev); |
1279 | 1279 | ||
1280 | if (error) | ||
1281 | pm_runtime_put(dev); | ||
1282 | |||
1280 | return error; | 1283 | return error; |
1281 | } | 1284 | } |
1282 | 1285 | ||