|
@@ -996,8 +996,6 @@ static void ieee80211_chswitch_work(struct work_struct *work)
|
|
sdata->csa_block_tx = false;
|
|
sdata->csa_block_tx = false;
|
|
}
|
|
}
|
|
|
|
|
|
- ifmgd->flags &= ~IEEE80211_STA_CSA_RECEIVED;
|
|
|
|
-
|
|
|
|
ieee80211_sta_reset_beacon_monitor(sdata);
|
|
ieee80211_sta_reset_beacon_monitor(sdata);
|
|
ieee80211_sta_reset_conn_monitor(sdata);
|
|
ieee80211_sta_reset_conn_monitor(sdata);
|
|
|
|
|
|
@@ -1055,7 +1053,7 @@ ieee80211_sta_process_chanswitch(struct ieee80211_sub_if_data *sdata,
|
|
return;
|
|
return;
|
|
|
|
|
|
/* disregard subsequent announcements if we are already processing */
|
|
/* disregard subsequent announcements if we are already processing */
|
|
- if (ifmgd->flags & IEEE80211_STA_CSA_RECEIVED)
|
|
|
|
|
|
+ if (sdata->vif.csa_active)
|
|
return;
|
|
return;
|
|
|
|
|
|
current_band = cbss->channel->band;
|
|
current_band = cbss->channel->band;
|
|
@@ -1082,8 +1080,6 @@ ieee80211_sta_process_chanswitch(struct ieee80211_sub_if_data *sdata,
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
- ifmgd->flags |= IEEE80211_STA_CSA_RECEIVED;
|
|
|
|
-
|
|
|
|
mutex_lock(&local->mtx);
|
|
mutex_lock(&local->mtx);
|
|
mutex_lock(&local->chanctx_mtx);
|
|
mutex_lock(&local->chanctx_mtx);
|
|
conf = rcu_dereference_protected(sdata->vif.chanctx_conf,
|
|
conf = rcu_dereference_protected(sdata->vif.chanctx_conf,
|
|
@@ -2099,8 +2095,6 @@ static void __ieee80211_disconnect(struct ieee80211_sub_if_data *sdata)
|
|
ieee80211_set_disassoc(sdata, IEEE80211_STYPE_DEAUTH,
|
|
ieee80211_set_disassoc(sdata, IEEE80211_STYPE_DEAUTH,
|
|
WLAN_REASON_DISASSOC_DUE_TO_INACTIVITY,
|
|
WLAN_REASON_DISASSOC_DUE_TO_INACTIVITY,
|
|
true, frame_buf);
|
|
true, frame_buf);
|
|
- ifmgd->flags &= ~IEEE80211_STA_CSA_RECEIVED;
|
|
|
|
-
|
|
|
|
mutex_lock(&local->mtx);
|
|
mutex_lock(&local->mtx);
|
|
sdata->vif.csa_active = false;
|
|
sdata->vif.csa_active = false;
|
|
if (sdata->csa_block_tx) {
|
|
if (sdata->csa_block_tx) {
|