Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1537789

[PATCH] PM: Fix bug in the error handling of async suspend

From Sahitya Tummala <stummala@codeaurora.org>
Newsgroups linux.kernel
Subject [PATCH] PM: Fix bug in the error handling of async suspend
Date 2016-12-07 15:50 +0100
Message-ID <sLLHH-1lX-9@gated-at.bofh.it> (permalink)
Organization linux.* mail to news gateway

Show all headers | View raw


If async_suspend is enabled for parent and child devices, then
PM framework has to ensure that parent's async suspend gets called
only after child's async suspend is done. In case if child's async
suspend fails with error, then parent's async suspend must not be
invoked. The current code uses async_error to ensure this but there
is a problem with it in __device_suspend(). This function notifies
the completion of child's async suspend before updating its error
via async_error variable. As a result, parent's async suspend gets
invoked even though it's child suspend has failed. Fix this bug by
updating the async_error before notifying the child's completion.

Signed-off-by: Sahitya Tummala <stummala@codeaurora.org>
---
 drivers/base/power/main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c
index e44944f4be77..f733f50f8321 100644
--- a/drivers/base/power/main.c
+++ b/drivers/base/power/main.c
@@ -1460,9 +1460,9 @@ static int __device_suspend(struct device *dev, pm_message_t state, bool async)
 	dpm_watchdog_clear(&wd);
 
  Complete:
-	complete_all(&dev->power.completion);
 	if (error)
 		async_error = error;
+	complete_all(&dev->power.completion);
 
 	TRACE_SUSPEND(error);
 	return error;
-- 
Qualcomm India Private Limited, on behalf of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project.

Back to linux.kernel | Previous | NextNext in thread | Find similar | Unroll thread


Thread

[PATCH] PM: Fix bug in the error handling of async suspend Sahitya Tummala <stummala@codeaurora.org> - 2016-12-07 15:50 +0100
  Re: [PATCH] PM: Fix bug in the error handling of async suspend "Rafael J. Wysocki" <rjw@rjwysocki.net> - 2016-12-08 01:30 +0100

csiph-web