comgt: move 3g hotplug handling to tty subsystem, fixes race on coldplug (#9211)

SVN-Revision: 26809
This commit is contained in:
Jo-Philipp Wich 2011-05-03 19:39:13 +00:00
parent ff4203b9bd
commit 549067e2b4
2 changed files with 10 additions and 7 deletions

View file

@ -54,8 +54,8 @@ define Package/comgt/install
$(INSTALL_DATA) ./files/3g.button $(1)/etc/hotplug.d/button/05-3g
$(INSTALL_DIR) $(1)/etc/hotplug.d/iface
$(INSTALL_DATA) ./files/3g.iface $(1)/etc/hotplug.d/iface/05-3g
$(INSTALL_DIR) $(1)/etc/hotplug.d/usb
$(INSTALL_DATA) ./files/3g.usb $(1)/etc/hotplug.d/usb/30-3g
$(INSTALL_DIR) $(1)/etc/hotplug.d/tty
$(INSTALL_DATA) ./files/3g.usb $(1)/etc/hotplug.d/tty/30-3g
$(INSTALL_DIR) $(1)/etc/gcom
$(INSTALL_DATA) ./files/setpin.gcom $(1)/etc/gcom/setpin.gcom
$(INSTALL_DATA) ./files/setmode.gcom $(1)/etc/gcom/setmode.gcom

View file

@ -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