2015-05-08 02:09:26

by Ruchi Kandoi

[permalink] [raw]
Subject: [PATCH] suspend: Return error when pending wakeup source is found.

If a wakeup source is found to be pending in the last stage of suspend
after syscore suspend then the device doesn't suspend but the error is
not propogated which causes an error in the accounting for the number
of suspend aborts and successful suspends.

Signed-off-by: Ruchi Kandoi <[email protected]>
---
kernel/power/suspend.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c
index 8d7a1ef..343b4e4 100644
--- a/kernel/power/suspend.c
+++ b/kernel/power/suspend.c
@@ -366,6 +366,8 @@ static int suspend_enter(suspend_state_t state, bool *wakeup)
trace_suspend_resume(TPS("machine_suspend"),
state, false);
events_check_enabled = false;
+ } else if (*wakeup) {
+ error = -EBUSY;
}
syscore_resume();
}
--
2.2.0.rc0.207.ga3a616c