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>
This commit is contained in:
parent
5253ffb8c9
commit
990de49f74
@ -855,7 +855,7 @@ static void handle_channel(struct wiphy *wiphy,
|
||||
return;
|
||||
|
||||
REG_DBG_PRINT("Disabling freq %d MHz\n", chan->center_freq);
|
||||
chan->flags = IEEE80211_CHAN_DISABLED;
|
||||
chan->flags |= IEEE80211_CHAN_DISABLED;
|
||||
return;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user