From f05e1ae66601d4b2c8666c8fa91b46287ae93d86 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Wed, 24 Oct 2018 13:15:24 +0200 Subject: [PATCH] sleep: when we can't hibernate on suspend-then-hibernate, fall back to suspend again Let's make this a bit safer, and try hard to return to sleep, if we can at all. Fixes: #10212 --- src/sleep/sleep.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/sleep/sleep.c b/src/sleep/sleep.c index e3b72a768d..a4eba59851 100644 --- a/src/sleep/sleep.c +++ b/src/sleep/sleep.c @@ -263,7 +263,17 @@ static int execute_s2h(usec_t hibernate_delay_sec) { return 0; /* If woken up after alarm time, hibernate */ - return execute(hibernate_modes, hibernate_states); + r = execute(hibernate_modes, hibernate_states); + if (r < 0) { + log_notice("Couldn't hibernate, will try to suspend again."); + r = execute(suspend_modes, suspend_states); + if (r < 0) { + log_notice("Could neither hibernate nor suspend again, giving up."); + return r; + } + } + + return 0; } static int help(void) {