diff options
author | Johannes Berg <johannes.berg@intel.com> | 2013-02-08 06:07:44 -0500 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2013-02-11 12:44:57 -0500 |
commit | 1f4ac5a63f897a480fffd0d5c843b03f02c384a5 (patch) | |
tree | d7ae579e6dff49cfc5c8eca2812fa04faa7246fc /net/mac80211/ieee80211_i.h | |
parent | 757af6fefd53628bcfe75f7fbd302c5d4c02eba5 (diff) |
mac80211: explicitly copy channels to VLANs where needed
Currently the code assigns channel contexts to VLANs
(for use by the TX/RX code) when the AP master gets
its channel context assigned. This works fine, but
in the upcoming radar detection work the VLANs don't
require a channel context (during radar detection)
and assigning one to them anyway causes issues with
locking and also inconsistencies -- a VLAN interface
that is added before radar detection would get the
channel context, while one added during it wouldn't.
Fix these issues moving the channel context copying
to a new explicit operation that will not be used
in the radar detection code.
Acked-by: Simon Wunderlich <siwu@hrz.tu-chemnitz.de>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/ieee80211_i.h')
-rw-r--r-- | net/mac80211/ieee80211_i.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h index 080cf0942ce7..8e884fcbe79b 100644 --- a/net/mac80211/ieee80211_i.h +++ b/net/mac80211/ieee80211_i.h | |||
@@ -1605,6 +1605,8 @@ ieee80211_vif_use_channel(struct ieee80211_sub_if_data *sdata, | |||
1605 | enum ieee80211_chanctx_mode mode); | 1605 | enum ieee80211_chanctx_mode mode); |
1606 | void ieee80211_vif_release_channel(struct ieee80211_sub_if_data *sdata); | 1606 | void ieee80211_vif_release_channel(struct ieee80211_sub_if_data *sdata); |
1607 | void ieee80211_vif_vlan_copy_chanctx(struct ieee80211_sub_if_data *sdata); | 1607 | void ieee80211_vif_vlan_copy_chanctx(struct ieee80211_sub_if_data *sdata); |
1608 | void ieee80211_vif_copy_chanctx_to_vlans(struct ieee80211_sub_if_data *sdata, | ||
1609 | bool clear); | ||
1608 | 1610 | ||
1609 | void ieee80211_recalc_smps_chanctx(struct ieee80211_local *local, | 1611 | void ieee80211_recalc_smps_chanctx(struct ieee80211_local *local, |
1610 | struct ieee80211_chanctx *chanctx); | 1612 | struct ieee80211_chanctx *chanctx); |