|
@@ -5192,6 +5192,10 @@ static void wl12xx_op_channel_switch(struct ieee80211_hw *hw,
|
|
|
if (unlikely(wl->state == WLCORE_STATE_OFF)) {
|
|
|
wl12xx_for_each_wlvif_sta(wl, wlvif) {
|
|
|
struct ieee80211_vif *vif = wl12xx_wlvif_to_vif(wlvif);
|
|
|
+
|
|
|
+ if (!test_bit(WLVIF_FLAG_STA_ASSOCIATED, &wlvif->flags))
|
|
|
+ continue;
|
|
|
+
|
|
|
ieee80211_chswitch_done(vif, false);
|
|
|
}
|
|
|
goto out;
|
|
@@ -5207,6 +5211,9 @@ static void wl12xx_op_channel_switch(struct ieee80211_hw *hw,
|
|
|
wl12xx_for_each_wlvif_sta(wl, wlvif) {
|
|
|
unsigned long delay_usec;
|
|
|
|
|
|
+ if (!test_bit(WLVIF_FLAG_STA_ASSOCIATED, &wlvif->flags))
|
|
|
+ continue;
|
|
|
+
|
|
|
ret = wl->ops->channel_switch(wl, wlvif, ch_switch);
|
|
|
if (ret)
|
|
|
goto out_sleep;
|