From f14ede6fadf639ef70e881a1224f02d8e3047274 Mon Sep 17 00:00:00 2001 From: Dmitry Shmidt <dimitrysh@google.com> Date: Tue, 3 Nov 2015 11:12:43 -0800 Subject: [PATCH] PM: Check dpm_suspend_start() return code during partial resume Bug: 24986869 Change-Id: Iea3e0f84e43827b365b96d34bc647e310523bd40 Signed-off-by: Dmitry Shmidt <dimitrysh@google.com> Signed-off-by: Thierry Strudel <tstrudel@google.com> --- kernel/power/suspend.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c index 7062798bf452..eb7696200a74 100644 --- a/kernel/power/suspend.c +++ b/kernel/power/suspend.c @@ -252,8 +252,14 @@ static bool suspend_again(bool *drivers_resumed) if (suspend_again_consensus() && !freeze_kernel_threads()) { clear_wakeup_reasons(); - dpm_suspend_start(PMSG_SUSPEND); *drivers_resumed = false; + if (dpm_suspend_start(PMSG_SUSPEND)) { + printk(KERN_ERR "PM: Some devices failed to suspend\n"); + log_suspend_abort_reason("Some devices failed to suspend"); + if (suspend_ops->recover) + suspend_ops->recover(); + return false; + } return true; } -- GitLab