broadcom-wl: improve device cleanup
Move all device cleanup to "disable_broadcom". Signed-off-by: Nathan Hintz <nlhintz@hotmail.com> SVN-Revision: 38758
This commit is contained in:
		| @@ -50,12 +50,6 @@ scan_broadcom() { | |||||||
| 	done | 	done | ||||||
| 	config_set "$device" vifs "${adhoc_if:-$sta_if $ap_if $mon_if}" | 	config_set "$device" vifs "${adhoc_if:-$sta_if $ap_if $mon_if}" | ||||||
|  |  | ||||||
| 	ifdown="down" |  | ||||||
| 	for vif in 0 1 2 3; do |  | ||||||
| 		append ifdown "vif $vif" "$N" |  | ||||||
| 		append ifdown "enabled 0" "$N" |  | ||||||
| 	done |  | ||||||
|  |  | ||||||
| 	ap=1 | 	ap=1 | ||||||
| 	infra=1 | 	infra=1 | ||||||
| 	if [ "$_c" -gt 1 ]; then | 	if [ "$_c" -gt 1 ]; then | ||||||
| @@ -96,7 +90,6 @@ scan_broadcom() { | |||||||
| disable_broadcom() { | disable_broadcom() { | ||||||
| 	local device="$1" | 	local device="$1" | ||||||
| 	set_wifi_down "$device" | 	set_wifi_down "$device" | ||||||
| 	wlc ifname "$device" down |  | ||||||
| 	( | 	( | ||||||
| 		include /lib/network | 		include /lib/network | ||||||
|  |  | ||||||
| @@ -104,12 +97,28 @@ disable_broadcom() { | |||||||
| 		[ -e $pid_file ] && start-stop-daemon -K -q -s SIGKILL -p $pid_file && rm $pid_file | 		[ -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 | 		# make sure the interfaces are down and removed from all bridges | ||||||
| 		local dev | 		local dev ifname | ||||||
| 		for dev in $device ${device}-1 ${device}-2 ${device}-3; do | 		for dev in /sys/class/net/wds${device##wl}-* /sys/class/net/${device}-* /sys/class/net/${device}; do | ||||||
| 			ifconfig "$dev" down 2>/dev/null >/dev/null && { | 			if [ -e "$dev" ]; then | ||||||
| 				unbridge "$dev" | 				ifname=${dev##/sys/class/net/} | ||||||
| 			} | 				ifconfig "$ifname" down | ||||||
|  | 				unbridge "$ifname" | ||||||
|  | 			fi | ||||||
| 		done | 		done | ||||||
|  |  | ||||||
|  | 		# make sure all of the devices are disabled in the driver | ||||||
|  | 		local ifdown= | ||||||
|  | 		local vif | ||||||
|  | 		append ifdown "down" "$N" | ||||||
|  | 		append ifdown "wds none" "$N" | ||||||
|  | 		for vif in 3 2 1 0; do | ||||||
|  | 			append ifdown "vif $vif" "$N" | ||||||
|  | 			append ifdown "enabled 0" "$N" | ||||||
|  | 		done | ||||||
|  |  | ||||||
|  | 		wlc ifname "$device" stdin <<EOF | ||||||
|  | $ifdown | ||||||
|  | EOF | ||||||
| 	) | 	) | ||||||
| 	true | 	true | ||||||
| } | } | ||||||
| @@ -362,8 +371,6 @@ enable_broadcom() { | |||||||
| 		_c=$(($_c + 1)) | 		_c=$(($_c + 1)) | ||||||
| 	done | 	done | ||||||
| 	wlc ifname "$device" stdin <<EOF | 	wlc ifname "$device" stdin <<EOF | ||||||
| $ifdown |  | ||||||
|  |  | ||||||
| ${macaddr:+bssid $macaddr} | ${macaddr:+bssid $macaddr} | ||||||
| ${macaddr:+cur_etheraddr $macaddr} | ${macaddr:+cur_etheraddr $macaddr} | ||||||
| band ${band:-0} | band ${band:-0} | ||||||
| @@ -387,7 +394,6 @@ monitor ${monitor:-0} | |||||||
| radio ${radio:-1} | radio ${radio:-1} | ||||||
| macfilter ${macfilter:-0} | macfilter ${macfilter:-0} | ||||||
| maclist ${maclist:-none} | maclist ${maclist:-none} | ||||||
| wds none |  | ||||||
| ${wds:+wds $wds} | ${wds:+wds $wds} | ||||||
| country ${country:-US} | country ${country:-US} | ||||||
| ${channel:+channel $channel} | ${channel:+channel $channel} | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Hauke Mehrtens
					Hauke Mehrtens