Переглянути джерело

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: stable@vger.kernel.org
Reported-by: Jouni Malinen <j@w1.fi>
Signed-off-by: Luciano Coelho <luciano.coelho@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Luciano Coelho 11 роки тому
батько
коміт
ff1e417c7c
1 змінених файлів з 2 додано та 1 видалено
  1. 2 1
      net/mac80211/mlme.c

+ 2 - 1
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);
 		ieee80211_queue_work(&local->hw, &ifmgd->chswitch_work);
 	else
 	else
 		mod_timer(&ifmgd->chswitch_timer,
 		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
 static bool