cfg80211: adjacent 80+80 MHz channel segments are invalid
authorJohannes Berg <johannes.berg@intel.com>
Thu, 13 Dec 2012 23:19:08 +0000 (00:19 +0100)
committerJohannes Berg <johannes.berg@intel.com>
Thu, 3 Jan 2013 12:01:32 +0000 (13:01 +0100)
In that case, it's really a 160 MHz channel, so disallow
this configuration.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/wireless/chan.c

index a7990bb..396373f 100644 (file)
@@ -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 &&