summaryrefslogtreecommitdiff
path: root/kernel/power/suspend.c
diff options
context:
space:
mode:
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>2016-07-08 23:14:17 +0200
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2016-07-08 23:14:17 +0200
commit63f9ccb89552f25fa8cac57a6796479ca7eb527d (patch)
tree6b8286f4d70ccf4f2a5b65764af7887836d02bf1 /kernel/power/suspend.c
parent65c0554b73c920023cc8998802e508b798113b46 (diff)
parent307c5971c972ef2bfd541d2850b36a692c6354c9 (diff)
downloadlinux-63f9ccb89552f25fa8cac57a6796479ca7eb527d.tar.gz
linux-63f9ccb89552f25fa8cac57a6796479ca7eb527d.tar.bz2
linux-63f9ccb89552f25fa8cac57a6796479ca7eb527d.zip
Merge back earlier suspend/hibernation changes for v4.8.
Diffstat (limited to 'kernel/power/suspend.c')
-rw-r--r--kernel/power/suspend.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c
index 5b70d64b871e..0acab9d7f96f 100644
--- a/kernel/power/suspend.c
+++ b/kernel/power/suspend.c
@@ -266,16 +266,18 @@ static int suspend_test(int level)
*/
static int suspend_prepare(suspend_state_t state)
{
- int error;
+ int error, nr_calls = 0;
if (!sleep_state_supported(state))
return -EPERM;
pm_prepare_console();
- error = pm_notifier_call_chain(PM_SUSPEND_PREPARE);
- if (error)
+ error = __pm_notifier_call_chain(PM_SUSPEND_PREPARE, -1, &nr_calls);
+ if (error) {
+ nr_calls--;
goto Finish;
+ }
trace_suspend_resume(TPS("freeze_processes"), 0, true);
error = suspend_freeze_processes();
@@ -286,7 +288,7 @@ static int suspend_prepare(suspend_state_t state)
suspend_stats.failed_freeze++;
dpm_save_failed_step(SUSPEND_FREEZE);
Finish:
- pm_notifier_call_chain(PM_POST_SUSPEND);
+ __pm_notifier_call_chain(PM_POST_SUSPEND, nr_calls, NULL);
pm_restore_console();
return error;
}