broadcom-wl: shutdown 'nas' when 'wl' device is disabled
authorhauke <hauke@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Mon, 11 Nov 2013 21:59:58 +0000 (21:59 +0000)
committerhauke <hauke@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Mon, 11 Nov 2013 21:59:58 +0000 (21:59 +0000)
'nas' must be shutdown independently for each 'wl' device to properly
support devices with multiple radios.  Do the shutdown when the device
is disabled instead of when it is brought up.

Signed-off-by: Nathan Hintz <nlhintz@hotmail.com>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38753 3c298f89-4303-0410-b956-a3cf2f4a3e73

package/kernel/broadcom-wl/files/lib/wifi/broadcom.sh

index 80cd9d5..191092a 100644 (file)
@@ -101,6 +101,9 @@ disable_broadcom() {
        (
                include /lib/network
 
        (
                include /lib/network
 
+               local pid_file=/var/run/nas.$device.pid
+               [ -e $pid_file ] && start-stop-daemon -K -q -s SIGKILL -p $pid_file && rm $pid_file
+
                # make sure the interfaces are down and removed from all bridges
                for dev in $device ${device}-1 ${device}-2 ${device}-3; do
                        ifconfig "$dev" down 2>/dev/null >/dev/null && {
                # make sure the interfaces are down and removed from all bridges
                for dev in $device ${device}-1 ${device}-2 ${device}-3; do
                        ifconfig "$dev" down 2>/dev/null >/dev/null && {
@@ -346,7 +349,6 @@ enable_broadcom() {
                }
                _c=$(($_c + 1))
        done
                }
                _c=$(($_c + 1))
        done
-       killall -KILL nas >&- 2>&-
        wlc ifname "$device" stdin <<EOF
 $ifdown
 
        wlc ifname "$device" stdin <<EOF
 $ifdown