]> git.baikalelectronics.ru Git - kernel.git/commit
wireless: regulatory: fix channel disabling race condition
authorJohannes Berg <johannes.berg@intel.com>
Tue, 16 Apr 2013 12:32:26 +0000 (14:32 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Tue, 16 Apr 2013 13:25:46 +0000 (15:25 +0200)
commitc7fa6fd608ee6d0de06d7822355c61674b44abb9
tree92558ab89eaadcdfd2d36e8107627b53822b478d
parentf13ae8af606720821181c6d5849a2a8528cd4adc
wireless: regulatory: fix channel disabling race condition

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.

Cc: stable@vger.kernel.org
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/wireless/reg.c