diff options
author | Luciano Coelho <[email protected]> | 2014-10-28 13:33:05 +0200 |
---|---|---|
committer | Johannes Berg <[email protected]> | 2014-10-29 16:37:54 +0100 |
commit | ff1e417c7c239b7abfe70aa90460a77eaafc7f83 (patch) | |
tree | a7c00c2ba1b3414a48f75c7ebc1a6db54d11eb76 | |
parent | 84469a45a1bedec9918e94ab2f78c5dc0739e4a7 (diff) |
mac80211: schedule the actual switch of the station before CSA count 0
Due to the time it takes to process the beacon that started the CSA
process, we may be late for the switch if we try to reach exactly
beacon 0. To avoid that, use count - 1 when calculating the switch time.
Cc: [email protected]
Reported-by: Jouni Malinen <[email protected]>
Signed-off-by: Luciano Coelho <[email protected]>
Signed-off-by: Johannes Berg <[email protected]>
-rw-r--r-- | net/mac80211/mlme.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c index 08f51c6d0953..93af0f1c9d99 100644 --- a/net/mac80211/mlme.c +++ b/net/mac80211/mlme.c @@ -1168,7 +1168,8 @@ ieee80211_sta_process_chanswitch(struct ieee80211_sub_if_data *sdata, ieee80211_queue_work(&local->hw, &ifmgd->chswitch_work); else mod_timer(&ifmgd->chswitch_timer, - TU_TO_EXP_TIME(csa_ie.count * cbss->beacon_interval)); + TU_TO_EXP_TIME((csa_ie.count - 1) * + cbss->beacon_interval)); } static bool |