Commit 7976b1e9 authored by Sara Sharon's avatar Sara Sharon Committed by Johannes Berg

mac80211: ignore quiet mode in probe

Some buggy APs keep the CSA IE in probes after the channel
switch was completed and can silence us for no good reason.
Apply quiet mode only from beacons. If there is real channel
switch going on, we will see the beacon anyway.
Signed-off-by: default avatarSara Sharon <sara.sharon@intel.com>
Signed-off-by: default avatarLuca Coelho <luciano.coelho@intel.com>
Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent 9792875c
...@@ -1316,7 +1316,7 @@ ieee80211_sta_process_chanswitch(struct ieee80211_sub_if_data *sdata, ...@@ -1316,7 +1316,7 @@ ieee80211_sta_process_chanswitch(struct ieee80211_sub_if_data *sdata,
if (!res) { if (!res) {
ch_switch.timestamp = timestamp; ch_switch.timestamp = timestamp;
ch_switch.device_timestamp = device_timestamp; ch_switch.device_timestamp = device_timestamp;
ch_switch.block_tx = csa_ie.mode; ch_switch.block_tx = beacon ? csa_ie.mode : 0;
ch_switch.chandef = csa_ie.chandef; ch_switch.chandef = csa_ie.chandef;
ch_switch.count = csa_ie.count; ch_switch.count = csa_ie.count;
ch_switch.delay = csa_ie.max_switch_time; ch_switch.delay = csa_ie.max_switch_time;
...@@ -1409,7 +1409,7 @@ ieee80211_sta_process_chanswitch(struct ieee80211_sub_if_data *sdata, ...@@ -1409,7 +1409,7 @@ ieee80211_sta_process_chanswitch(struct ieee80211_sub_if_data *sdata,
sdata->vif.csa_active = true; sdata->vif.csa_active = true;
sdata->csa_chandef = csa_ie.chandef; sdata->csa_chandef = csa_ie.chandef;
sdata->csa_block_tx = csa_ie.mode; sdata->csa_block_tx = ch_switch.block_tx;
ifmgd->csa_ignored_same_chan = false; ifmgd->csa_ignored_same_chan = false;
if (sdata->csa_block_tx) if (sdata->csa_block_tx)
...@@ -1443,7 +1443,7 @@ ieee80211_sta_process_chanswitch(struct ieee80211_sub_if_data *sdata, ...@@ -1443,7 +1443,7 @@ ieee80211_sta_process_chanswitch(struct ieee80211_sub_if_data *sdata,
* reset when the disconnection worker runs. * reset when the disconnection worker runs.
*/ */
sdata->vif.csa_active = true; sdata->vif.csa_active = true;
sdata->csa_block_tx = csa_ie.mode; sdata->csa_block_tx = ch_switch.block_tx;
ieee80211_queue_work(&local->hw, &ifmgd->csa_connection_drop_work); ieee80211_queue_work(&local->hw, &ifmgd->csa_connection_drop_work);
mutex_unlock(&local->chanctx_mtx); mutex_unlock(&local->chanctx_mtx);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment