]> 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:16:37 +0000 (18:16 -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 346512696bd1c193cdab50946961e38d3eac740d..f60d4258e1b95facdf7a191f3ed1ad94a828b31a 100644 (file)
@@ -3809,13 +3809,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;
 }