[PATCH] iwlwifi: mvm: Increase session protection duration for association

From: Kai-Heng Feng
Date: Thu Sep 24 2020 - 02:48:20 EST


Sometimes Intel AX201 fails to associate with AP:
[ 839.290042] wlp0s20f3: authenticate with xx:xx:xx:xx:xx:xx
[ 839.291737] wlp0s20f3: send auth to xx:xx:xx:xx:xx:xx (try 1/3)
[ 839.350010] wlp0s20f3: send auth to xx:xx:xx:xx:xx:xx (try 2/3)
[ 839.360826] wlp0s20f3: authenticated
[ 839.363205] wlp0s20f3: associate with xx:xx:xx:xx:xx:xx (try 1/3)
[ 839.370342] wlp0s20f3: RX AssocResp from xx:xx:xx:xx:xx:xx (capab=0x431 status=0 aid=12)
[ 839.378925] wlp0s20f3: associated
[ 839.431788] wlp0s20f3: deauthenticated from xx:xx:xx:xx:xx:xx (Reason: 2=PREV_AUTH_NOT_VALID)

It fails because EAPOL hasn't finished. Increase the session protection
duration to 1200TU can eliminate the problem.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=209237
Signed-off-by: Kai-Heng Feng <kai.heng.feng@xxxxxxxxxxxxx>
---
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
index 9374c85c5caf..54acd9a68955 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
@@ -3297,13 +3297,13 @@ static void iwl_mvm_mac_mgd_prepare_tx(struct ieee80211_hw *hw,
* session for a much longer time since the firmware will internally
* create two events: a 300TU one with a very high priority that
* won't be fragmented which should be enough for 99% of the cases,
- * and another one (which we configure here to be 900TU long) which
+ * and another one (which we configure here to be 1200TU long) which
* will have a slightly lower priority, but more importantly, can be
* fragmented so that it'll allow other activities to run.
*/
if (fw_has_capa(&mvm->fw->ucode_capa,
IWL_UCODE_TLV_CAPA_SESSION_PROT_CMD))
- iwl_mvm_schedule_session_protection(mvm, vif, 900,
+ iwl_mvm_schedule_session_protection(mvm, vif, 1200,
min_duration, false);
else
iwl_mvm_protect_session(mvm, vif, duration,
--
2.17.1