remove all broadcom interfaces from bridges and bring them down completely when wifi down is called
SVN-Revision: 5116
This commit is contained in:
		| @@ -70,6 +70,11 @@ setup_interface() { | |||||||
| 	proto="${3:-$(config_get "$config" proto)}" | 	proto="${3:-$(config_get "$config" proto)}" | ||||||
| 	config_get iftype "$config" type | 	config_get iftype "$config" type | ||||||
| 	 | 	 | ||||||
|  | 	ifconfig "$iface" 2>/dev/null >/dev/null && { | ||||||
|  | 		# make sure the interface is removed from any existing bridge | ||||||
|  | 		unbridge "$iface" | ||||||
|  | 	} | ||||||
|  |  | ||||||
| 	# Setup VLAN interfaces | 	# Setup VLAN interfaces | ||||||
| 	add_vlan "$iface" | 	add_vlan "$iface" | ||||||
|  |  | ||||||
| @@ -141,3 +146,15 @@ setup_interface() { | |||||||
| 	esac | 	esac | ||||||
| } | } | ||||||
|  |  | ||||||
|  | unbridge() { | ||||||
|  | 	local dev="$1" | ||||||
|  | 	local brdev | ||||||
|  |  | ||||||
|  | 	brctl show | grep "$dev" >/dev/null && { | ||||||
|  | 		# interface is still part of a bridge, correct that | ||||||
|  |  | ||||||
|  | 		for brdev in $(brctl show | awk '$2 ~ /^[0-9].*\./ { print $1 }'); do | ||||||
|  | 			brctl delif "$brdev" "$dev" 2>/dev/null >/dev/null | ||||||
|  | 		done | ||||||
|  | 	} | ||||||
|  | } | ||||||
|   | |||||||
| @@ -10,12 +10,5 @@ case "$iftype" in | |||||||
| esac | esac | ||||||
|  |  | ||||||
| for dev in $ifname; do | for dev in $ifname; do | ||||||
| 	brctl show | grep "$dev" >/dev/null && { |  | ||||||
| 		# interface is still part of a bridge, correct that |  | ||||||
|  |  | ||||||
| 		for brdev in $(brctl show | awk '$2 ~ /^[0-9].*\./ { print $1 }'); do |  | ||||||
| 			brctl delif "$brdev" "$dev" 2>/dev/null >/dev/null |  | ||||||
| 		done |  | ||||||
| 	} |  | ||||||
| 	setup_interface "$dev" "$1" | 	setup_interface "$dev" "$1" | ||||||
| done | done | ||||||
|   | |||||||
| @@ -75,7 +75,17 @@ scan_broadcom() { | |||||||
|  |  | ||||||
| disable_broadcom() { | disable_broadcom() { | ||||||
| 	wlc down | 	wlc down | ||||||
| 	ifconfig wl0 down | 	( | ||||||
|  | 		include /lib/network | ||||||
|  | 		scan_interfaces | ||||||
|  |  | ||||||
|  | 		# make sure the interfaces are down and removed from all bridges | ||||||
|  | 		for dev in wl0 wl0.1 wl0.2 wl0.3; do | ||||||
|  | 			ifconfig "$dev" down 2>/dev/null >/dev/null && { | ||||||
|  | 				unbridge "$dev" | ||||||
|  | 			} | ||||||
|  | 		done | ||||||
|  | 	) | ||||||
| } | } | ||||||
|  |  | ||||||
| enable_broadcom() { | enable_broadcom() { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Felix Fietkau
					Felix Fietkau