mac80211: always call wireless_set_data (FS#3784)
authorBob Cantor <coxede6557@w3boats.com>
Thu, 24 Jun 2021 18:07:34 +0000 (04:07 +1000)
committerFelix Fietkau <nbd@nbd.name>
Wed, 30 Jun 2021 17:24:55 +0000 (19:24 +0200)
commit9302e63d1a3589f764e61caf0b3ecdad524458ea
treee6b89db319207550c587ed15003764158a6b6f9b
parentbea9380149d58e79bed4bf4b8298066bd36edde8
mac80211: always call wireless_set_data  (FS#3784)

When wifi is turned off, drv_mac80211_teardown sometimes fails (silently)
because the device to be torn down is not defined.

This situation arises if drv_mac80211_setup was called twice when
wifi was turned on.

This commit ensures that the device to be torn down is always defined
in drv_mac80211_teardown.

Steps to reproduce:

1) Use /sbin/wifi to turn on wifi.
   uci set wireless.@wifi-iface[0].disabled=0
   uci set wireless.@wifi-device[0].disabled=0
   uci commit
   wifi

2) Use /sbin/wifi to turn off wifi.
   uci set wireless.@wifi-device[0].disabled=1
   uci commit
   wifi

3) Observe that wifi is still up.

branches affected: trunk, 21.02

Signed-off-by: Bob Cantor <coxede6557@w3boats.com>
(cherry-picked from commit d515f6b6cde357bf480d32a7387f07ea40e85e52)
package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh