From: Lennart Poettering Date: Fri, 16 Nov 2018 20:44:36 +0000 (+0100) Subject: logind: when we need to execute a sleep operation we don't support, fall back to... X-Git-Tag: v240~284^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c282daed6818ce89a981a15f92e1dbb6bdd05433;p=thirdparty%2Fsystemd.git logind: when we need to execute a sleep operation we don't support, fall back to suspend If suspend-then-hibernate, hybrid-sleep or plain hibernation is supposed to be execute due to a key press/lid switch but is not supported, automatically fall back to plain suspend (and log about it). Fixes: #10558 --- diff --git a/src/login/logind-action.c b/src/login/logind-action.c index 317e9ef384c..be5804bff1f 100644 --- a/src/login/logind-action.c +++ b/src/login/logind-action.c @@ -108,6 +108,14 @@ int manager_handle_action( else supported = true; + if (!supported && IN_SET(handle, HANDLE_HIBERNATE, HANDLE_HYBRID_SLEEP, HANDLE_SUSPEND_THEN_HIBERNATE)) { + supported = can_sleep("suspend") > 0; + if (supported) { + log_notice("Operation '%s' requested but not supported, using regular suspend instead.", handle_action_to_string(handle)); + handle = HANDLE_SUSPEND; + } + } + if (!supported) { log_warning("Requested operation not supported, ignoring."); return -EOPNOTSUPP;