summaryrefslogtreecommitdiffstats
path: root/net/wireless/chan.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2012-12-14 00:19:08 +0100
committerJohannes Berg <johannes.berg@intel.com>2013-01-03 13:01:32 +0100
commit9cab315190cddbe3aaa31b64841354dd719afdfd (patch)
tree27eea878d27475698839cc7295341d49c2ac5928 /net/wireless/chan.c
parentmac80211: optimise AP stop RCU handling (diff)
downloadlinux-9cab315190cddbe3aaa31b64841354dd719afdfd.tar.xz
linux-9cab315190cddbe3aaa31b64841354dd719afdfd.zip
cfg80211: adjacent 80+80 MHz channel segments are invalid
In that case, it's really a 160 MHz channel, so disallow this configuration. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/wireless/chan.c')
-rw-r--r--net/wireless/chan.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/net/wireless/chan.c b/net/wireless/chan.c
index a7990bb16529..396373f3ec26 100644
--- a/net/wireless/chan.c
+++ b/net/wireless/chan.c
@@ -76,6 +76,10 @@ bool cfg80211_chandef_valid(const struct cfg80211_chan_def *chandef)
return false;
if (!chandef->center_freq2)
return false;
+ /* adjacent is not allowed -- that's a 160 MHz channel */
+ if (chandef->center_freq1 - chandef->center_freq2 == 80 ||
+ chandef->center_freq2 - chandef->center_freq1 == 80)
+ return false;
break;
case NL80211_CHAN_WIDTH_80:
if (chandef->center_freq1 != control_freq + 30 &&