mac80211: prevent tuning during scanning
Postpone calling ieee80211_hw_config if hardware scanning is active. This is similar to solution for software scanning where channel setting is delayed until scan complete. Signed-off-by: Mohamed Abbas <mohamed.abbas@intel.com> Signed-off-by: Reinette Chatre <reinette.chatre@intel.com> Acked-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
Родитель
85249e5fab
Коммит
675ef586f0
|
@ -287,7 +287,7 @@ int ieee80211_set_freq(struct ieee80211_local *local, int freqMHz)
|
|||
if (chan && !(chan->flags & IEEE80211_CHAN_DISABLED)) {
|
||||
local->oper_channel = chan;
|
||||
|
||||
if (local->sta_sw_scanning)
|
||||
if (local->sta_sw_scanning || local->sta_hw_scanning)
|
||||
ret = 0;
|
||||
else
|
||||
ret = ieee80211_hw_config(local);
|
||||
|
|
|
@ -3615,6 +3615,9 @@ void ieee80211_scan_completed(struct ieee80211_hw *hw)
|
|||
|
||||
if (local->sta_hw_scanning) {
|
||||
local->sta_hw_scanning = 0;
|
||||
if (ieee80211_hw_config(local))
|
||||
printk(KERN_DEBUG "%s: failed to restore operational "
|
||||
"channel after scan\n", dev->name);
|
||||
/* Restart STA timer for HW scan case */
|
||||
rcu_read_lock();
|
||||
list_for_each_entry_rcu(sdata, &local->interfaces, list)
|
||||
|
|
Загрузка…
Ссылка в новой задаче