Merge pull request #22486 from osedl/modemmanager-improve-cleanup

modemmanager improve cleanup
This commit is contained in:
Florian Eckert 2023-10-30 11:34:46 +01:00 committed by GitHub
commit ac9973bc11
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 15 additions and 24 deletions

View file

@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=modemmanager PKG_NAME:=modemmanager
PKG_SOURCE_VERSION:=1.22.0 PKG_SOURCE_VERSION:=1.22.0
PKG_RELEASE:=3 PKG_RELEASE:=5
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://gitlab.freedesktop.org/mobile-broadband/ModemManager.git PKG_SOURCE_URL:=https://gitlab.freedesktop.org/mobile-broadband/ModemManager.git

View file

@ -235,24 +235,20 @@ mm_report_modem_wait() {
# Cleanup interfaces # Cleanup interfaces
mm_cleanup_interfaces() { mm_cleanup_interfaces() {
local modemlist modemlength idx modeminfo modemsysfspath local sysfs_path status
modemlist=$(mmcli --list-modems --output-keyvalue) # Do nothing if there is no sysfs cache
[ -n "${modemlist}" ] || return 0 [ -f "${MODEMMANAGER_SYSFS_CACHE}" ] || return
modemlength=$(modemmanager_get_field "${modemlist}" "modem-list.length") while IFS= read -r sysfs_cache_line; do
sysfs_path=$(echo "${sysfs_cache_line}" | awk '{print $1}')
status=$(echo "${sysfs_cache_line}" | awk '{print $2}')
# do nothing if no modem reported if [ "${status}" = "processed" ]; then
[ -n "${modemlength}" ] && [ "${modemlength}" -ge 1 ] && { mm_log "debug" "call cleanup for: ${sysfs_path}"
idx=1 mm_cleanup_interface_by_sysfspath "${sysfs_path}"
while [ $idx -le "$modemlength" ]; do fi
modempath=$(modemmanager_get_field "${modemlist}" "modem-list.value\[$idx\]") done < ${MODEMMANAGER_SYSFS_CACHE}
modeminfo=$(mmcli --modem "${modempath}" --output-keyvalue)
modemsysfspath=$(modemmanager_get_field "${modeminfo}" "modem.generic.device")
mm_cleanup_interface_by_sysfspath "${modemsysfspath}"
idx=$((idx + 1))
done
}
} }
mm_cleanup_interface_by_sysfspath() { mm_cleanup_interface_by_sysfspath() {

View file

@ -6,13 +6,6 @@ START=70
LOG_LEVEL="INFO" LOG_LEVEL="INFO"
stop_service() {
# Load common utils
. /usr/share/ModemManager/modemmanager.common
# Set all configured interfaces as unavailable
mm_cleanup_interfaces
}
start_service() { start_service() {
# Setup ModemManager service # Setup ModemManager service
# #

View file

@ -20,7 +20,6 @@ main() {
mkdir -p "${MODEMMANAGER_RUNDIR}" mkdir -p "${MODEMMANAGER_RUNDIR}"
chmod 0755 "${MODEMMANAGER_RUNDIR}" chmod 0755 "${MODEMMANAGER_RUNDIR}"
mm_cleanup_interfaces
/usr/sbin/ModemManager "$@" 1>/dev/null 2>/dev/null & /usr/sbin/ModemManager "$@" 1>/dev/null 2>/dev/null &
CHILD="$!" CHILD="$!"
@ -28,6 +27,9 @@ main() {
mm_report_events_from_cache mm_report_events_from_cache
wait "$CHILD" wait "$CHILD"
# Set all configured interfaces as unavailable
mm_cleanup_interfaces
} }
main "$@" main "$@"