diff options
author | Arik Nemtsov <arik@wizery.com> | 2016-03-02 23:28:33 +0200 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2016-04-05 10:51:08 +0200 |
commit | aa507a7bc5ab7513b83fc37ed040b5254737a518 (patch) | |
tree | 2563b92e174b47c18bfd73729edadb96f8b40dd9 /net/mac80211 | |
parent | 59021c675995281d453eee45b3e2e1e3edbc0ec2 (diff) | |
download | linux-stable-aa507a7bc5ab7513b83fc37ed040b5254737a518.tar.gz linux-stable-aa507a7bc5ab7513b83fc37ed040b5254737a518.tar.bz2 linux-stable-aa507a7bc5ab7513b83fc37ed040b5254737a518.zip |
mac80211: recalc min_def chanctx even when chandef is identical
The min_def chanctx is affected not only by the current chandef, but
sometimes also by other stations on the vif. There's a valid scenario
where a TDLS peer can widen its BW, thereby causing the min_def
to increase.
Signed-off-by: Arik Nemtsov <arikx.nemtsov@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211')
-rw-r--r-- | net/mac80211/chan.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/net/mac80211/chan.c b/net/mac80211/chan.c index 283981108ca8..74142d07ad31 100644 --- a/net/mac80211/chan.c +++ b/net/mac80211/chan.c @@ -343,8 +343,10 @@ static void ieee80211_change_chanctx(struct ieee80211_local *local, struct ieee80211_chanctx *ctx, const struct cfg80211_chan_def *chandef) { - if (cfg80211_chandef_identical(&ctx->conf.def, chandef)) + if (cfg80211_chandef_identical(&ctx->conf.def, chandef)) { + ieee80211_recalc_chanctx_min_def(local, ctx); return; + } WARN_ON(!cfg80211_chandef_compatible(&ctx->conf.def, chandef)); |