aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/mlme.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/mac80211/mlme.c')
-rw-r--r--net/mac80211/mlme.c36
1 files changed, 17 insertions, 19 deletions
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index 1ab1884eddbf..eccc8492a59c 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -980,11 +980,11 @@ static void ieee80211_chswitch_work(struct work_struct *work)
980 mutex_lock(&local->mtx); 980 mutex_lock(&local->mtx);
981 sdata->vif.csa_active = false; 981 sdata->vif.csa_active = false;
982 /* XXX: wait for a beacon first? */ 982 /* XXX: wait for a beacon first? */
983 if (!ieee80211_csa_needs_block_tx(local)) 983 if (sdata->csa_block_tx) {
984 ieee80211_wake_queues_by_reason(&local->hw, 984 ieee80211_wake_vif_queues(local, sdata,
985 IEEE80211_MAX_QUEUE_MAP, 985 IEEE80211_QUEUE_STOP_REASON_CSA);
986 IEEE80211_QUEUE_STOP_REASON_CSA, 986 sdata->csa_block_tx = false;
987 false); 987 }
988 mutex_unlock(&local->mtx); 988 mutex_unlock(&local->mtx);
989 989
990 ifmgd->flags &= ~IEEE80211_STA_CSA_RECEIVED; 990 ifmgd->flags &= ~IEEE80211_STA_CSA_RECEIVED;
@@ -1114,10 +1114,8 @@ ieee80211_sta_process_chanswitch(struct ieee80211_sub_if_data *sdata,
1114 sdata->csa_block_tx = csa_ie.mode; 1114 sdata->csa_block_tx = csa_ie.mode;
1115 1115
1116 if (sdata->csa_block_tx) 1116 if (sdata->csa_block_tx)
1117 ieee80211_stop_queues_by_reason(&local->hw, 1117 ieee80211_stop_vif_queues(local, sdata,
1118 IEEE80211_MAX_QUEUE_MAP, 1118 IEEE80211_QUEUE_STOP_REASON_CSA);
1119 IEEE80211_QUEUE_STOP_REASON_CSA,
1120 false);
1121 mutex_unlock(&local->mtx); 1119 mutex_unlock(&local->mtx);
1122 1120
1123 if (local->ops->channel_switch) { 1121 if (local->ops->channel_switch) {
@@ -1833,11 +1831,11 @@ static void ieee80211_set_disassoc(struct ieee80211_sub_if_data *sdata,
1833 ieee80211_vif_release_channel(sdata); 1831 ieee80211_vif_release_channel(sdata);
1834 1832
1835 sdata->vif.csa_active = false; 1833 sdata->vif.csa_active = false;
1836 if (!ieee80211_csa_needs_block_tx(local)) 1834 if (sdata->csa_block_tx) {
1837 ieee80211_wake_queues_by_reason(&local->hw, 1835 ieee80211_wake_vif_queues(local, sdata,
1838 IEEE80211_MAX_QUEUE_MAP, 1836 IEEE80211_QUEUE_STOP_REASON_CSA);
1839 IEEE80211_QUEUE_STOP_REASON_CSA, 1837 sdata->csa_block_tx = false;
1840 false); 1838 }
1841 mutex_unlock(&local->mtx); 1839 mutex_unlock(&local->mtx);
1842 1840
1843 sdata->encrypt_headroom = IEEE80211_ENCRYPT_HEADROOM; 1841 sdata->encrypt_headroom = IEEE80211_ENCRYPT_HEADROOM;
@@ -2083,11 +2081,11 @@ static void __ieee80211_disconnect(struct ieee80211_sub_if_data *sdata)
2083 2081
2084 mutex_lock(&local->mtx); 2082 mutex_lock(&local->mtx);
2085 sdata->vif.csa_active = false; 2083 sdata->vif.csa_active = false;
2086 if (!ieee80211_csa_needs_block_tx(local)) 2084 if (sdata->csa_block_tx) {
2087 ieee80211_wake_queues_by_reason(&local->hw, 2085 ieee80211_wake_vif_queues(local, sdata,
2088 IEEE80211_MAX_QUEUE_MAP, 2086 IEEE80211_QUEUE_STOP_REASON_CSA);
2089 IEEE80211_QUEUE_STOP_REASON_CSA, 2087 sdata->csa_block_tx = false;
2090 false); 2088 }
2091 mutex_unlock(&local->mtx); 2089 mutex_unlock(&local->mtx);
2092 2090
2093 cfg80211_tx_mlme_mgmt(sdata->dev, frame_buf, 2091 cfg80211_tx_mlme_mgmt(sdata->dev, frame_buf,