linux/net/wireless
Johannes Berg 131e3afd38 wireless: regulatory: fix channel disabling race condition
commit 990de49f74 upstream.

When a full scan 2.4 and 5 GHz scan is scheduled, but then the 2.4 GHz
part of the scan disables a 5.2 GHz channel due to, e.g. receiving
country or frequency information, that 5.2 GHz channel might already
be in the list of channels to scan next. Then, when the driver checks
if it should do a passive scan, that will return false and attempt an
active scan. This is not only wrong but can also lead to the iwlwifi
device firmware crashing since it checks regulatory as well.

Fix this by not setting the channel flags to just disabled but rather
OR'ing in the disabled flag. That way, even if the race happens, the
channel will be scanned passively which is still (mostly) correct.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-05-07 19:51:56 -07:00
..
.gitignore wireless: support internal statically compiled regulatory database 2009-12-21 18:56:10 -05:00
chan.c nl80211: Parse channel type attribute in an ibss join request 2011-12-06 16:05:24 -05:00
core.c cfg80211: fix antenna gain handling 2012-11-17 13:15:56 -08:00
core.h cfg80211: process pending events when unregistering net device 2012-08-15 08:10:32 -07: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 cfg80211/mac80211: use debugfs_remove_recursive 2009-10-30 16:49:18 -04:00
ethtool.c wireless: add support for ethtool_ops->{get,set}_ringparam 2011-03-11 14:16:58 -05:00
ethtool.h net/wireless/ethtool.h: drop unnecessary include of linux/ethtool.h 2009-10-07 16:39:49 -04:00
genregdb.awk cfg80211: relicense reg.c reg.h and genregdb.awk to ISC 2012-01-04 14:30:41 -05:00
ibss.c net: Add export.h for EXPORT_SYMBOL/THIS_MODULE to non-modules 2011-10-31 19:30:30 -04:00
Kconfig wireless: disable wext sysfs by default 2011-12-07 15:19:39 -05:00
lib80211_crypt_ccmp.c wireless: Remove unnecessary OOM logging messages 2011-09-13 15:45:02 -04:00
lib80211_crypt_tkip.c wireless: Remove unnecessary OOM logging messages 2011-09-13 15:45:02 -04:00
lib80211_crypt_wep.c wireless: Remove unnecessary OOM logging messages 2011-09-13 15:45:02 -04:00
lib80211.c lib80211: remove exports for functions not called by other modules 2011-08-09 15:42:36 -04:00
Makefile cfg80211/mac80211: add mesh join/leave commands 2010-12-06 16:01:29 -05:00
mesh.c {nl,cfg,mac}80211: Implement RSSI threshold for mesh peering 2012-03-05 15:23:15 -05:00
mlme.c cfg80211/mac80211: report signal strength for mgmt frames 2012-03-06 15:16:05 -05:00
nl80211.c nl80211: ensure interface is up in various APIs 2012-04-09 15:54:46 -04:00
nl80211.h cfg80211/mac80211: report signal strength for mgmt frames 2012-03-06 15:16:05 -05:00
radiotap.c net: Add export.h for EXPORT_SYMBOL/THIS_MODULE to non-modules 2011-10-31 19:30:30 -04:00
reg.c wireless: regulatory: fix channel disabling race condition 2013-05-07 19:51:56 -07:00
reg.h cfg80211: relicense reg.c reg.h and genregdb.awk to ISC 2012-01-04 14:30:41 -05: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: clarify timestamp in cfg80211_inform_bss 2012-03-13 14:54:20 -04:00
sme.c cfg80211: stop tracking authenticated state 2012-02-06 14:50:37 -05:00
sysfs.c mac80211: fix suspend/resume races with unregister hw 2011-08-22 14:21:40 -04:00
sysfs.h
util.c mac80211: verify that skb data is present 2012-11-17 13:16:11 -08:00
wext-compat.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux 2011-11-22 14:05:46 -05:00
wext-compat.h cfg80211: remove unused wext handler exports 2011-08-08 14:26:29 -04:00
wext-core.c net/wireless/wext-core.c: add missing kfree 2012-04-09 15:54:50 -04: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: Add background scan period attribute. 2012-03-12 14:19:34 -04:00
wext-spy.c net: Add export.h for EXPORT_SYMBOL/THIS_MODULE to non-modules 2011-10-31 19:30:30 -04:00