From: Mark Somerville Date: Thu, 6 Apr 2023 12:45:31 +0000 (+0100) Subject: qga: Fix suspend on Linux guests without systemd X-Git-Tag: qemu-xen-4.18.0-rc5~112 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=828af6b31fb75b95d3e7dd516f3a14fbcb0ecacd;p=qemu-xen.git qga: Fix suspend on Linux guests without systemd Allow the Linux guest agent to attempt each of the suspend methods (systemctl, pm-* and writing to /sys) in turn. Prior to this guests without systemd failed to suspend due to `guest_suspend` returning early regardless of the return value of `systemd_supports_mode`. Signed-off-by: Mark Somerville Reviewed-by: Konstantin Kostiuk Signed-off-by: Konstantin Kostiuk (cherry picked from commit 86dcb6ab9b603450eb6d896cdc95286de2c7d561) Signed-off-by: Michael Tokarev --- diff --git a/qga/commands-posix.c b/qga/commands-posix.c index 079689d79a..59e7154af4 100644 --- a/qga/commands-posix.c +++ b/qga/commands-posix.c @@ -1918,10 +1918,10 @@ static void guest_suspend(SuspendMode mode, Error **errp) if (systemd_supports_mode(mode, &local_err)) { mode_supported = true; systemd_suspend(mode, &local_err); - } - if (!local_err) { - return; + if (!local_err) { + return; + } } error_free(local_err); @@ -1930,10 +1930,10 @@ static void guest_suspend(SuspendMode mode, Error **errp) if (pmutils_supports_mode(mode, &local_err)) { mode_supported = true; pmutils_suspend(mode, &local_err); - } - if (!local_err) { - return; + if (!local_err) { + return; + } } error_free(local_err);