From f6e38ec125ddb1da51780e510c7943e76f61f88d Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@openwrt.org>
Date: Mon, 18 Jan 2016 15:35:30 +0000
Subject: [PATCH] br2684ctl: resolve a boot time race condition with nas0
 bringup by using explicit notification when init is done

Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 48321
---
 package/network/utils/linux-atm/Makefile        |  4 ++--
 package/network/utils/linux-atm/files/br2684-up |  3 +++
 package/network/utils/linux-atm/files/br2684ctl | 13 ++-----------
 3 files changed, 7 insertions(+), 13 deletions(-)
 create mode 100644 package/network/utils/linux-atm/files/br2684-up

diff --git a/package/network/utils/linux-atm/Makefile b/package/network/utils/linux-atm/Makefile
index 9c6cfec95c..e081428eb0 100644
--- a/package/network/utils/linux-atm/Makefile
+++ b/package/network/utils/linux-atm/Makefile
@@ -178,10 +178,10 @@ define Package/atm-diagnostics/install
 endef
 
 define Package/br2684ctl/install
-	$(INSTALL_DIR) $(1)/etc/init.d $(1)/etc/hotplug.d/atm
+	$(INSTALL_DIR) $(1)/etc/init.d $(1)/etc/hotplug.d/atm $(1)/usr/sbin $(1)/lib/netifd
+	$(INSTALL_BIN) ./files/br2684-up $(1)/lib/netifd/br2684-up
 	$(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) \
 		./files/br2684ctl_wrap \
 		$(PKG_INSTALL_DIR)/usr/sbin/br2684ctl \
diff --git a/package/network/utils/linux-atm/files/br2684-up b/package/network/utils/linux-atm/files/br2684-up
new file mode 100644
index 0000000000..ba1d67023e
--- /dev/null
+++ b/package/network/utils/linux-atm/files/br2684-up
@@ -0,0 +1,3 @@
+#!/bin/sh
+. /lib/functions/network.sh
+network_ready_device "$1"
diff --git a/package/network/utils/linux-atm/files/br2684ctl b/package/network/utils/linux-atm/files/br2684ctl
index 1cac4df04d..0fa86bdefd 100755
--- a/package/network/utils/linux-atm/files/br2684ctl
+++ b/package/network/utils/linux-atm/files/br2684ctl
@@ -60,20 +60,11 @@ start_daemon() {
 	procd_set_param command \
 		/usr/sbin/br2684ctl_wrap "nas$unit" \
 		-c "$unit" -e "$encaps" -p "$payload" \
-		-a "$circuit" ${qos:+-q "$qos"} ${sendsize:+-s "$sendsize"}
+		-a "$circuit" ${qos:+-q "$qos"} ${sendsize:+-s "$sendsize"} \
+		-S /lib/netifd/br2684-up
 	procd_close_instance
 }
 
-service_running() {
-	. /lib/functions/network.sh
-
-	sleep 1
-	for path in /sys/class/net/nas*; do
-		dev="${path##*/}"
-		network_ready_device "$dev"
-	done
-}
-
 service_triggers() {
 	local script=$(readlink "$initscript")
 	local name=$(basename ${script:-$initscript})
-- 
GitLab