Skip to content

Commit

Permalink
Merge pull request #22485 from osedl/modemmanager-fix-race-condition
Browse files Browse the repository at this point in the history
Modemmanager fix race condition
  • Loading branch information
feckert authored Oct 27, 2023
2 parents cf5b553 + 01fb59f commit 7d75637
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 9 deletions.
2 changes: 1 addition & 1 deletion net/modemmanager/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk

PKG_NAME:=modemmanager
PKG_SOURCE_VERSION:=1.22.0
PKG_RELEASE:=1
PKG_RELEASE:=3

PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://gitlab.freedesktop.org/mobile-broadband/ModemManager.git
Expand Down
20 changes: 12 additions & 8 deletions net/modemmanager/files/modemmanager.common
Original file line number Diff line number Diff line change
Expand Up @@ -277,7 +277,7 @@ mm_report_event() {
local sysfspath="$4"

# Do not save virtual devices
local virtual
local virtual result
virtual="$(echo "$sysfspath" | cut -d'/' -f4)"
[ "$virtual" = "virtual" ] && {
mm_log "debug" "sysfspath is a virtual device ($sysfspath)"
Expand All @@ -298,11 +298,15 @@ mm_report_event() {
esac

# Report the event
mm_log "debug" "event reported: action=${action}, name=${name}, subsystem=${subsystem}"
mmcli --report-kernel-event="action=${action},name=${name},subsystem=${subsystem}" 1>/dev/null 2>&1 &
mm_log "debug" "Report event: action=${action}, name=${name}, subsystem=${subsystem}"
result=$(mmcli --report-kernel-event="action=${action},name=${name},subsystem=${subsystem}" 2>&1)
if [ "$?" -eq "0" ]; then
# Wait for added modem if a sysfspath is given
[ -n "${sysfspath}" ] && [ "$action" = "add" ] && mm_report_modem_wait "${sysfspath}"
else
mm_log "error" "Couldn't report kernel event: ${result}"
fi

# Wait for added modem if a sysfspath is given
[ -n "${sysfspath}" ] && [ "$action" = "add" ] && mm_report_modem_wait "${sysfspath}"
}

mm_report_event_from_cache_line() {
Expand All @@ -319,9 +323,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
Expand All @@ -346,6 +347,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}"
Expand Down

0 comments on commit 7d75637

Please sign in to comment.