aboutsummaryrefslogtreecommitdiffstats
path: root/package/comgt/files
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2011-05-03 19:39:13 +0000
committerJo-Philipp Wich <jow@openwrt.org>2011-05-03 19:39:13 +0000
commit549067e2b4da4a49900e3beabd9a9d409c7fac68 (patch)
treebf004f506d78c37e315941b37d6d665ad57d23ae /package/comgt/files
parentff4203b9bd1d0fb0b8caa6fb3e4eedd32cb4d3ad (diff)
downloadupstream-549067e2b4da4a49900e3beabd9a9d409c7fac68.tar.gz
upstream-549067e2b4da4a49900e3beabd9a9d409c7fac68.tar.bz2
upstream-549067e2b4da4a49900e3beabd9a9d409c7fac68.zip
comgt: move 3g hotplug handling to tty subsystem, fixes race on coldplug (#9211)
SVN-Revision: 26809
Diffstat (limited to 'package/comgt/files')
-rw-r--r--package/comgt/files/3g.usb13
1 files changed, 8 insertions, 5 deletions
diff --git a/package/comgt/files/3g.usb b/package/comgt/files/3g.usb
index d5a38b8a4c..ea2fba1509 100644
--- a/package/comgt/files/3g.usb
+++ b/package/comgt/files/3g.usb
@@ -22,8 +22,11 @@ find_3g_iface() {
config_get dev "$cfg" device
if [ "${dev##*/}" = "${tty##*/}" ]; then
- log "Starting interface $cfg for device ${tty##*/}"
- ( sleep 1; /sbin/ifup "$cfg" ) &
+ [ -z "$(ls /var/lock | grep ${dev##*/})" ] && {
+ log "Starting interface $cfg for device ${dev##*/}"
+ sleep 1
+ /sbin/ifup "$cfg"
+ }
fi
}
}
@@ -31,13 +34,13 @@ find_3g_iface() {
if [ "$ACTION" = add ]; then
case "$DEVICENAME" in
- *-*:*.*) config_load network;;
+ tty*) config_load network;;
*) exit 0;;
esac
local tty
- for tty in /sys/$DEVPATH/ttyUSB* /sys/$DEVPATH/tty/ttyACM* /sys/$DEVPATH/tty/ttyHS*; do
- [ -d "$tty" ] || continue
+ for tty in /dev/ttyUSB* /dev/ttyACM* /dev/ttyHS*; do
+ [ -e "$tty" ] || continue
config_foreach find_3g_iface interface "$tty"
done
fi