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