summaryrefslogtreecommitdiff
path: root/net/mac80211/iface.c
diff options
context:
space:
mode:
authorLuciano Coelho <luciano.coelho@intel.com>2014-10-08 10:48:39 +0400
committerJohannes Berg <johannes.berg@intel.com>2014-10-09 13:30:09 +0400
commit0c21e6320f6ea7c4bd2fc0a8c1d8577b372f92d2 (patch)
tree928688796878b45d17d3138157f947384cec82ad /net/mac80211/iface.c
parentf1d65583bc5bd43ace8abb9d4f4d9e8da407f708 (diff)
downloadlinux-0c21e6320f6ea7c4bd2fc0a8c1d8577b372f92d2.tar.xz
mac80211: wait for the first beacon on the new channel after CSA
Instead of immediately reopening the queues (in case of block_tx), calling the post_channel_switch operation and sending the notification, wait for the first beacon on the new channel. This makes sure that we don't lose packets if the AP/GO is not on the new channel yet. Signed-off-by: Luciano Coelho <luciano.coelho@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/iface.c')
-rw-r--r--net/mac80211/iface.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c
index af237223a8cd..e469b3390f2a 100644
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
@@ -842,6 +842,8 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
sdata_lock(sdata);
mutex_lock(&local->mtx);
sdata->vif.csa_active = false;
+ if (sdata->vif.type == NL80211_IFTYPE_STATION)
+ sdata->u.mgd.csa_waiting_bcn = false;
if (sdata->csa_block_tx) {
ieee80211_wake_vif_queues(local, sdata,
IEEE80211_QUEUE_STOP_REASON_CSA);