summaryrefslogtreecommitdiff
path: root/net/mac80211/cfg.c
diff options
context:
space:
mode:
authorArik Nemtsov <arik@wizery.com>2013-09-01 18:15:51 +0400
committerJohannes Berg <johannes.berg@intel.com>2013-10-02 20:18:23 +0400
commit7578d57520f51093f590d68e16965e2714e69747 (patch)
tree3a984a992a0511d1d73c423e6d1f70366609dcbe /net/mac80211/cfg.c
parentc6ca5e28bc005f109b2772765c62b4d4ec35c954 (diff)
downloadlinux-7578d57520f51093f590d68e16965e2714e69747.tar.xz
mac80211: implement STA CSA for drivers using channel contexts
Limit the current implementation to a single channel context used by a single vif, thereby avoiding multi-vif/channel complexities. Reuse the main function from AP CSA code, but move a portion out in order to fit the STA scenario. Add a new mac80211 HW flag so we don't break devices that don't support channel switch with channel-contexts. The new behavior will be opt-in. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/cfg.c')
-rw-r--r--net/mac80211/cfg.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
index b455e7264f4f..ac28af74a414 100644
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -2871,6 +2871,11 @@ void ieee80211_csa_finalize_work(struct work_struct *work)
if (WARN_ON(err < 0))
return;
+ if (!local->use_chanctx) {
+ local->_oper_chandef = local->csa_chandef;
+ ieee80211_hw_config(local, 0);
+ }
+
ieee80211_bss_info_change_notify(sdata, changed);
switch (sdata->vif.type) {