base-files: wifi: swap the order of some ubus calls
"/sbin/wifi up" makes three ubus calls:
1. ubus call network reload
2. ubus call network.wireless down
3. ubus call network.wireless up
The first and third ubus calls call drv_mac80211_setup,
while the second ubus call triggers wireless_device_setup_cancel,
so the call sequence becomes,
1. drv_mac80211_setup
2. wireless_device_setup_cancel
3. drv_mac80211_setup
This commit swaps the order of the first two ubus calls,
1. ubus call network.wireless down
2. ubus call network reload
3. ubus call network.wireless up
Consequently drv_mac80211_setup is only called once,
and two related bugs (#FS3784 and #FS3902) are no longer triggered
by /sbin/wifi.
branches affected: trunk, 21.02
Signed-off-by: Bob Cantor <coxede6557@w3boats.com>
(cherry-picked from commit b82cc80713)
This commit is contained in:
committed by
Felix Fietkau
parent
6f13a39035
commit
b27b63b082
@@ -130,6 +130,7 @@ wifi_updown() {
|
|||||||
ubus_wifi_cmd "$cmd" "$2"
|
ubus_wifi_cmd "$cmd" "$2"
|
||||||
scan_wifi
|
scan_wifi
|
||||||
cmd=up
|
cmd=up
|
||||||
|
ubus call network reload
|
||||||
}
|
}
|
||||||
[ reconf = "$1" ] && {
|
[ reconf = "$1" ] && {
|
||||||
scan_wifi
|
scan_wifi
|
||||||
@@ -247,6 +248,6 @@ case "$1" in
|
|||||||
reload_legacy) wifi_reload_legacy "$2";;
|
reload_legacy) wifi_reload_legacy "$2";;
|
||||||
--help|help) usage;;
|
--help|help) usage;;
|
||||||
reconf) ubus call network reload; wifi_updown "reconf" "$2";;
|
reconf) ubus call network reload; wifi_updown "reconf" "$2";;
|
||||||
''|up) ubus call network reload; wifi_updown "enable" "$2";;
|
''|up) wifi_updown "enable" "$2";;
|
||||||
*) usage; exit 1;;
|
*) usage; exit 1;;
|
||||||
esac
|
esac
|
||||||
|
|||||||
Reference in New Issue
Block a user