Patch "wifi: iwlwifi: exit eSR only after the FW does" has been added to the 6.6-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    wifi: iwlwifi: exit eSR only after the FW does

to the 6.6-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     wifi-iwlwifi-exit-esr-only-after-the-fw-does.patch
and it can be found in the queue-6.6 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 62581de53c922277d27cf89bae9dbda2001a5df6
Author: Miri Korenblit <miriam.rachel.korenblit@xxxxxxxxx>
Date:   Thu Feb 1 16:17:39 2024 +0200

    wifi: iwlwifi: exit eSR only after the FW does
    
    [ Upstream commit 16867c38bcd3be2eb9016a3198a096f93959086e ]
    
    Currently the driver exits eSR by calling
    iwl_mvm_esr_mode_inactive() before updating the FW
    (by deactivating one of the links), and therefore before
    sending the EML frame notifying that we are no longer in eSR.
    
    This is wrong for several reasons:
    1. The driver sends SMPS activation frames when we are still in eSR
       and SMPS should be disabled when in eSR
    2. The driver restores RLC configuration as it was before eSR
       entering, and RLC command shouldn't be sent in eSR
    
    Fix this by calling iwl_mvm_esr_mode_inactive() after FW update
    
    Fixes: 12bacfc2c065 ("wifi: iwlwifi: handle eSR transitions")
    Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@xxxxxxxxx>
    Reviewed-by: Ilan Peer <ilan.peer@xxxxxxxxx>
    Reviewed-by: Gregory Greenman <gregory.greenman@xxxxxxxxx>
    Link: https://msgid.link/20240201155157.d8d9dc277d4e.Ib5aee0fd05e35b1da7f18753eb3c8fa0a3f872f3@changeid
    Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c b/drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c
index 1e58f0234293..2d1fd7ac8577 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c
@@ -435,6 +435,9 @@ __iwl_mvm_mld_unassign_vif_chanctx(struct iwl_mvm *mvm,
 		mvmvif->ap_ibss_active = false;
 	}
 
+	iwl_mvm_link_changed(mvm, vif, link_conf,
+			     LINK_CONTEXT_MODIFY_ACTIVE, false);
+
 	if (iwl_mvm_is_esr_supported(mvm->fwrt.trans) && n_active > 1) {
 		int ret = iwl_mvm_esr_mode_inactive(mvm, vif);
 
@@ -446,9 +449,6 @@ __iwl_mvm_mld_unassign_vif_chanctx(struct iwl_mvm *mvm,
 	if (vif->type == NL80211_IFTYPE_MONITOR)
 		iwl_mvm_mld_rm_snif_sta(mvm, vif);
 
-	iwl_mvm_link_changed(mvm, vif, link_conf,
-			     LINK_CONTEXT_MODIFY_ACTIVE, false);
-
 	if (switching_chanctx)
 		return;
 	mvmvif->link[link_id]->phy_ctxt = NULL;




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux