batman-adv: fix race condition between iface add and iface up

Signed-off-by: Gui Iribarren <gui@altermundi.net>
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>



git-svn-id: svn://svn.openwrt.org/openwrt/packages@34385 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
marek 2012-11-26 10:36:23 +00:00
parent 3de4f48885
commit 4ee2c1e736
4 changed files with 14 additions and 3 deletions

View File

@ -109,10 +109,11 @@ define Build/Clean
endef
define KernelPackage/batman-adv/install
$(INSTALL_DIR) $(1)/etc/config $(1)/etc/hotplug.d/net $(1)/lib/batman-adv $(1)/usr/sbin
$(INSTALL_DIR) $(1)/etc/config $(1)/etc/hotplug.d/net $(1)/etc/hotplug.d/iface $(1)/lib/batman-adv $(1)/usr/sbin
$(INSTALL_DATA) ./files/etc/config/batman-adv $(1)/etc/config
$(INSTALL_DATA) ./files/lib/batman-adv/config.sh $(1)/lib/batman-adv
$(INSTALL_BIN) ./files/etc/hotplug.d/net/99-batman-adv $(1)/etc/hotplug.d/net
$(INSTALL_BIN) ./files/etc/hotplug.d/iface/99-batman-adv $(1)/etc/hotplug.d/iface
$(INSTALL_BIN) ./files/usr/sbin/batman-adv $(1)/usr/sbin
$(BATCTL_INSTALL)
endef

View File

@ -0,0 +1,12 @@
#!/bin/sh
. /lib/batman-adv/config.sh
bat_load_module
config_load batman-adv
case "$ACTION" in
ifup)
[ -d /sys/class/net/$DEVICE/batman_adv/ ] && config_foreach bat_add_interface mesh "$DEVICE"
;;
esac

View File

@ -8,7 +8,6 @@ config_load batman-adv
case "$ACTION" in
add)
[ -d /sys/class/net/$INTERFACE/mesh/ ] && bat_config "$INTERFACE"
[ -d /sys/class/net/$INTERFACE/batman_adv/ ] && config_foreach bat_add_interface mesh "$INTERFACE"
;;
remove)
[ -d /sys/class/net/$INTERFACE/batman_adv/ ] && config_foreach bat_del_interface mesh "$INTERFACE"

View File

@ -48,7 +48,6 @@ bat_add_interface()
local interface="$2"
local interfaces
sleep 3s # some device (ath) is very lazy to start
config_get interfaces $mesh interfaces
for iface in $interfaces; do
[ -f "/sys/class/net/$iface/batman_adv/mesh_iface" ] || {