linux-stable/net/wireless
Vladimir Kondratiev 64629b9d41 cfg80211: Fix regulatory check for 60GHz band frequencies
The current regulatory code on cfg80211 performs a check to
see if a regulatory rule belongs to an IEEE band so that if
a Country IE is received and no rules are specified for a
band (which is allowed by IEEE) those bands are left intact.
The current band check assumes a rule is bound to a band
if the rule's start or end frequency is less than 2 GHz
apart from the center of frequency being inspected.

In order to support 60 GHz for 802.11ad we need to increase
this to account for the channel spacing of 2160 MHz whereby
a channel somewhere in the middle of a regulatory rule may
be more than 2 GHz apart from either the beginning or
end of the frequency rule.

Without a fix for this even though channels 1-3 are allowed world
wide on the rule (57240 - 63720 @ 2160), channel 2 at 60480 MHz
will end up getting disabled given that it is 3240 MHz from
both the frequency rule start and end frequency. Fix this by
using 2 GHz separation assumption for the 2.4 and 5 GHz bands
but for 60 GHz use a 10 GHz separation before assuming a rule
is not part of the band.

Since we have no 802.11ad drivers yet merged this change has
no impact to existing Linux upstream device drivers.

Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>
Acked-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2012-09-25 09:41:14 +02:00
..
.gitignore wireless: support internal statically compiled regulatory database 2009-12-21 18:56:10 -05:00
ap.c cfg80211: add channel tracking for AP and mesh 2012-06-29 13:39:15 +02:00
chan.c cfg80211: add P2P Device abstraction 2012-08-20 13:58:21 +02:00
core.c cfg80211: add P2P Device abstraction 2012-08-20 13:58:21 +02:00
core.h cfg80211: reduce monitor interface tracking 2012-07-13 16:16:11 +02:00
db.txt wireless: support internal statically compiled regulatory database 2009-12-21 18:56:10 -05:00
debugfs.c simple_open: automatically convert to simple_open() 2012-04-05 15:25:50 -07:00
debugfs.h
ethtool.c cfg80211: Add framework to support ethtool stats. 2012-05-08 21:53:49 -04:00
ethtool.h
genregdb.awk cfg80211: relicense reg.c reg.h and genregdb.awk to ISC 2012-01-04 14:30:41 -05:00
ibss.c cfg80211: respect iface combinations when starting operation 2012-06-29 13:39:19 +02:00
Kconfig cfg80211: add CONFIG_CFG80211_CERTIFICATION_ONUS 2012-07-17 12:13:51 +02:00
lib80211.c lib80211: remove exports for functions not called by other modules 2011-08-09 15:42:36 -04:00
lib80211_crypt_ccmp.c net: Convert net_ratelimit uses to net_<level>_ratelimited 2012-05-15 13:45:03 -04:00
lib80211_crypt_tkip.c net: Convert net_ratelimit uses to net_<level>_ratelimited 2012-05-15 13:45:03 -04:00
lib80211_crypt_wep.c wireless: Remove unnecessary OOM logging messages 2011-09-13 15:45:02 -04:00
Makefile cfg80211: introduce cfg80211_stop_ap 2012-06-29 13:39:14 +02:00
mesh.c cfg80211: respect iface combinations when starting operation 2012-06-29 13:39:19 +02:00
mlme.c cfg80211/nl80211: Notify connection request failure in AP mode 2012-09-18 19:54:06 +02:00
nl80211.c cfg80211/nl80211: Notify connection request failure in AP mode 2012-09-18 19:54:06 +02:00
nl80211.h cfg80211/nl80211: Notify connection request failure in AP mode 2012-09-18 19:54:06 +02:00
radiotap.c wireless: add radiotap A-MPDU status field 2012-08-20 13:53:09 +02:00
reg.c cfg80211: Fix regulatory check for 60GHz band frequencies 2012-09-25 09:41:14 +02:00
reg.h cfg80211: make regulatory_update() static 2012-07-17 12:16:40 +02:00
regdb.h cfg80211: relicense reg.c reg.h and genregdb.awk to ISC 2012-01-04 14:30:41 -05:00
scan.c cfg80211: fix indentation 2012-09-05 16:54:05 +02:00
sme.c nl80211: move scan API to wdev 2012-07-12 12:10:41 +02:00
sysfs.c mac80211: fix suspend/resume races with unregister hw 2011-08-22 14:21:40 -04:00
sysfs.h
util.c cfg80211: add P2P Device abstraction 2012-08-20 13:58:21 +02:00
wext-compat.c cfg80211/mac80211: re-add get_channel operation 2012-07-13 16:16:11 +02:00
wext-compat.h cfg80211: remove unused wext handler exports 2011-08-08 14:26:29 -04:00
wext-core.c wext: include wireless event id when it has a size problem 2012-09-05 16:12:44 +02:00
wext-priv.c wext: fix potential private ioctl memory content leak 2010-09-20 13:41:40 -04:00
wext-proc.c net: spread __net_init, __net_exit 2010-01-17 19:16:02 -08:00
wext-sme.c cfg80211: clarify set_channel APIs 2012-06-06 15:18:17 -04:00
wext-spy.c wireless: Convert compare_ether_addr to ether_addr_equal 2012-05-09 20:49:19 -04:00