]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
wifi: iwlwifi: mvm: fix the TLC command after ADD_STA
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Mon, 29 Jan 2024 19:21:59 +0000 (21:21 +0200)
committerSasha Levin <sashal@kernel.org>
Tue, 26 Mar 2024 22:19:25 +0000 (18:19 -0400)
[ Upstream commit 0fcdf55fced7121c43fa576433986f1c04115b73 ]

ADD_STA resets the link quality data inside the firmware. This is not
supposed to happen and has been fixed for newer devices. For older
devices (AX201 and down), this makes us send frames with rates that are
not in the TLC table.

Fixes: 5a86dcb4a908 ("wifi: iwlwifi: mvm: update station's MFP flag after association")
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240129211905.1deca7eaff14.I597abd7aab36fdab4aa8311a48c98a3d5bd433ba@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c

index 42da8e94900cf35c7614f84f963ffd46eea27307..ee6487af95f0468abf3dc8b2e52d65cb6523964b 100644 (file)
@@ -3781,13 +3781,17 @@ iwl_mvm_sta_state_assoc_to_authorized(struct iwl_mvm *mvm,
 
        mvm_sta->authorized = true;
 
-       iwl_mvm_rs_rate_init_all_links(mvm, vif, sta);
-
        /* MFP is set by default before the station is authorized.
         * Clear it here in case it's not used.
         */
-       if (!sta->mfp)
-               return callbacks->update_sta(mvm, vif, sta);
+       if (!sta->mfp) {
+               int ret = callbacks->update_sta(mvm, vif, sta);
+
+               if (ret)
+                       return ret;
+       }
+
+       iwl_mvm_rs_rate_init_all_links(mvm, vif, sta);
 
        return 0;
 }