aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2015-12-14 11:02:12 +0000
committerFelix Fietkau <nbd@openwrt.org>2015-12-14 11:02:12 +0000
commit510f5a7209fc4d3127c597aeaefbb89fa54b7fe1 (patch)
tree5aa3f895c1de94d818d799937ae735d448c39f2d
parentc0f4c9e0d82e7b8be4b81eaa9107517a9d9c9702 (diff)
downloadupstream-510f5a7209fc4d3127c597aeaefbb89fa54b7fe1.tar.gz
upstream-510f5a7209fc4d3127c597aeaefbb89fa54b7fe1.tar.bz2
upstream-510f5a7209fc4d3127c597aeaefbb89fa54b7fe1.zip
linux-atm: add wrapper for br2684ctl to defer nasX device bringup
Fixes a race condition on netifd device bringup. Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 47891
-rw-r--r--package/network/utils/linux-atm/Makefile5
-rwxr-xr-xpackage/network/utils/linux-atm/files/br2684ctl2
-rw-r--r--package/network/utils/linux-atm/files/br2684ctl_wrap5
3 files changed, 10 insertions, 2 deletions
diff --git a/package/network/utils/linux-atm/Makefile b/package/network/utils/linux-atm/Makefile
index 51e604c0bb..9c6cfec95c 100644
--- a/package/network/utils/linux-atm/Makefile
+++ b/package/network/utils/linux-atm/Makefile
@@ -182,7 +182,10 @@ define Package/br2684ctl/install
$(INSTALL_BIN) ./files/br2684ctl $(1)/etc/init.d/
$(INSTALL_DATA) ./files/atm.hotplug $(1)/etc/hotplug.d/atm/00-trigger
$(INSTALL_DIR) $(1)/usr/sbin
- $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/br2684ctl $(1)/usr/sbin/
+ $(INSTALL_BIN) \
+ ./files/br2684ctl_wrap \
+ $(PKG_INSTALL_DIR)/usr/sbin/br2684ctl \
+ $(1)/usr/sbin/
endef
$(eval $(call BuildPackage,linux-atm))
diff --git a/package/network/utils/linux-atm/files/br2684ctl b/package/network/utils/linux-atm/files/br2684ctl
index 3d122270e9..1cac4df04d 100755
--- a/package/network/utils/linux-atm/files/br2684ctl
+++ b/package/network/utils/linux-atm/files/br2684ctl
@@ -58,7 +58,7 @@ start_daemon() {
procd_open_instance
procd_set_param command \
- /usr/sbin/br2684ctl \
+ /usr/sbin/br2684ctl_wrap "nas$unit" \
-c "$unit" -e "$encaps" -p "$payload" \
-a "$circuit" ${qos:+-q "$qos"} ${sendsize:+-s "$sendsize"}
procd_close_instance
diff --git a/package/network/utils/linux-atm/files/br2684ctl_wrap b/package/network/utils/linux-atm/files/br2684ctl_wrap
new file mode 100644
index 0000000000..d1bc98e014
--- /dev/null
+++ b/package/network/utils/linux-atm/files/br2684ctl_wrap
@@ -0,0 +1,5 @@
+#!/bin/sh
+. /lib/functions/network.sh
+device="$1"; shift
+network_defer_device "$device"
+exec /usr/sbin/br2684ctl "$@"