modemmanager: remove sysfscache after dbus ready
authorOliver Sedlbauer <osedlbauer@tdt.de>
Mon, 16 Oct 2023 12:21:21 +0000 (14:21 +0200)
committerOliver Sedlbauer <osedlbauer@tdt.de>
Wed, 25 Oct 2023 07:33:22 +0000 (09:33 +0200)
The mm_report_events_from_cache method is called during the startup and
informs the ModemManager of kernel events. Additionally, hotplug scripts
inform the ModemManager of kernel events. Processed events are stored in
the sysfs cache. It is possible for a hotplug script to write to the
sysfs cache while the mm_report_events_from_cache method is still waiting
for the ModemManager to be available on the bus during startup.
This could lead to a misbehavior where modems are not recognized.
To ensure a clean state on startup, the sysfs cache is cleared after the
ModemManager is available, ensuring reliable processing of kernel events.

Signed-off-by: Oliver Sedlbauer <osedlbauer@tdt.de>
net/modemmanager/Makefile
net/modemmanager/files/modemmanager.common

index fa6f1ea60f9285e50a39164828dd70976ec05ac3..bdbdd236ea955ce651e6a11575c19148c9eefb99 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=modemmanager
 PKG_SOURCE_VERSION:=1.22.0
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://gitlab.freedesktop.org/mobile-broadband/ModemManager.git
index d46ee72430f1eae7e250ec5c4a47d2ee72bd9ff4..2a604c9b68c1012c64853431494c9a4c37a749c2 100644 (file)
@@ -319,9 +319,6 @@ mm_report_event_from_cache_line() {
 }
 
 mm_report_events_from_cache() {
-       # Remove the sysfs cache
-       rm -f "${MODEMMANAGER_SYSFS_CACHE}"
-
        local n=60
        local step=1
        local mmrunning=0
@@ -346,6 +343,9 @@ mm_report_events_from_cache() {
                return
        }
 
+       # Remove the sysfs cache
+       rm -f "${MODEMMANAGER_SYSFS_CACHE}"
+
        # Report cached kernel events
        while IFS= read -r event_line; do
                mm_report_event_from_cache_line "${event_line}"