summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArik Nemtsov <arik@wizery.com>2016-03-02 23:28:33 +0200
committerJohannes Berg <johannes.berg@intel.com>2016-04-05 10:51:08 +0200
commitaa507a7bc5ab7513b83fc37ed040b5254737a518 (patch)
tree2563b92e174b47c18bfd73729edadb96f8b40dd9
parent59021c675995281d453eee45b3e2e1e3edbc0ec2 (diff)
downloadlinux-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>
-rw-r--r--net/mac80211/chan.c4
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));