diff options
author | Luciano Coelho <luciano.coelho@intel.com> | 2014-10-08 10:48:39 +0400 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2014-10-09 13:30:09 +0400 |
commit | 0c21e6320f6ea7c4bd2fc0a8c1d8577b372f92d2 (patch) | |
tree | 928688796878b45d17d3138157f947384cec82ad /net/mac80211/iface.c | |
parent | f1d65583bc5bd43ace8abb9d4f4d9e8da407f708 (diff) | |
download | linux-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.c | 2 |
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); |