Skip to content
Snippets Groups Projects
Commit 3b51a670 authored by Arnav Singh's avatar Arnav Singh Committed by Natanael Copa
Browse files
parent 65dd0a8b
No related branches found
No related tags found
1 merge request!79187[3.21] community/modemmanager: fix crash when resuming from suspend
Pipeline #294489 skipped
From 5eb8203f8eba57aca55f67d63b309522c281e353 Mon Sep 17 00:00:00 2001
From: Arnav Singh <me@arnavion.dev>
Date: Sun, 22 Dec 2024 16:48:06 -0800
Subject: [PATCH] suspend: support logind not sending PrepareForSleep(true)
elogind sends PrepareForSleep(false) when resuming but doesn't necessarily
send PrepareForSleep(true) when sleeping. This means we didn't necessarily
drop our previous inhibitor when it's time to take a new one. So instead of
asserting that we dropped our previous inhibitor, just reuse it.
---
src/mm-sleep-monitor-systemd.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/mm-sleep-monitor-systemd.c b/src/mm-sleep-monitor-systemd.c
index 99814386..c432a416 100644
--- a/src/mm-sleep-monitor-systemd.c
+++ b/src/mm-sleep-monitor-systemd.c
@@ -114,7 +114,12 @@ inhibit_done (GObject *source,
static void
take_inhibitor (MMSleepMonitor *self)
{
- g_assert (self->inhibit_fd == -1);
+ if (self->inhibit_fd != -1) {
+ // logind didn't send us a `PrepareForSleep(true)` so we didn't drop our previous inhibitor.
+ // Just reuse it.
+ mm_obj_warn (self, "logind did not send sleep notification! Taking over existing inhibitor.");
+ return;
+ }
mm_obj_dbg (self, "taking systemd sleep inhibitor");
g_dbus_proxy_call_with_unix_fd_list (self->sd_proxy,
--
2.48.1
......@@ -2,7 +2,7 @@
# Maintainer: Stuart Cardall <developer@it-offshore.co.uk>
pkgname=modemmanager
pkgver=1.22.0
pkgrel=1
pkgrel=2
pkgdesc="ModemManager library"
url="https://www.freedesktop.org/wiki/Software/ModemManager"
arch="all"
......@@ -36,6 +36,7 @@ subpackages="
source="https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/archive/$pkgver/ModemManager-$pkgver.tar.gz
$pkgname.rules
$pkgname.initd
0001-mr-1274.patch
"
builddir="$srcdir"/ModemManager-$pkgver
......@@ -87,4 +88,5 @@ sha512sums="
f612ec26fc42943abc546fb246619b03d1a8d4f925edfb78231ffa9ee5f559d701e547fd8152f77d3aee16a78b397464abb948c72764ac2d2846edf07d8c0fcc ModemManager-1.22.0.tar.gz
6fab86c27502b29be0c6610d835a3249a4a81993eb986cff2c3ea9393fadd3f693ba4bb0532ae0e50a83d359559511859dd05f7ea2f0cb52839f535a7e49f8a0 modemmanager.rules
9f74a2473b9cc7be42a467809639f5720ab251d13f29f8bbd4fd9a13edb80c10c5ee50fbe50819bfe67f231805b92f007c3e7403c46ab998dc843e1f9549659b modemmanager.initd
d88c9cbff67a36ff559b9e1a7d6b121a4a816e80044874bfcc460667ea792dd9fcc4148115a146d0cdd82f7c5fbaf8341f2e580031349a968e8b6f537bd13dc6 0001-mr-1274.patch
"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment