diff options
author | Arik Nemtsov <arik@wizery.com> | 2013-09-01 18:15:51 +0400 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2013-10-02 20:18:23 +0400 |
commit | 7578d57520f51093f590d68e16965e2714e69747 (patch) | |
tree | 3a984a992a0511d1d73c423e6d1f70366609dcbe /net/mac80211/cfg.c | |
parent | c6ca5e28bc005f109b2772765c62b4d4ec35c954 (diff) | |
download | linux-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.c | 5 |
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) { |