aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLukas Wunner <lukas@wunner.de>2016-03-22 19:11:20 -0400
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2016-03-22 21:43:11 -0400
commit276142730c39c9839465a36a90e5674a8c34e839 (patch)
tree5e0cf4bb7fd8a00f16dc5956c701e1a63a1c6c91
parent22e09b333f0b395b3eb6ab6efa4b3284e2c06810 (diff)
PM / sleep: Clear pm_suspend_global_flags upon hibernate
When suspending to RAM, waking up and later suspending to disk, we gratuitously runtime resume devices after the thaw phase. This does not occur if we always suspend to RAM or always to disk. pm_complete_with_resume_check(), which gets called from pci_pm_complete() among others, schedules a runtime resume if PM_SUSPEND_FLAG_FW_RESUME is set. The flag is set during a suspend-to-RAM cycle. It is cleared at the beginning of the suspend-to-RAM cycle but not afterwards and it is not cleared during a suspend-to-disk cycle at all. Fix it. Fixes: ef25ba047601 (PM / sleep: Add flags to indicate platform firmware involvement) Signed-off-by: Lukas Wunner <lukas@wunner.de> Cc: 4.4+ <stable@vger.kernel.org> # 4.4+ Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
-rw-r--r--kernel/power/hibernate.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c
index b7342a24f559..b7dd5718836e 100644
--- a/kernel/power/hibernate.c
+++ b/kernel/power/hibernate.c
@@ -339,6 +339,7 @@ int hibernation_snapshot(int platform_mode)
339 pm_message_t msg; 339 pm_message_t msg;
340 int error; 340 int error;
341 341
342 pm_suspend_clear_flags();
342 error = platform_begin(platform_mode); 343 error = platform_begin(platform_mode);
343 if (error) 344 if (error)
344 goto Close; 345 goto Close;