Patch "wifi: iwlwifi: mvm: fix re-enabling EMLSR" has been added to the 6.10-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: mvm: fix re-enabling EMLSR

to the 6.10-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-mvm-fix-re-enabling-emlsr.patch
and it can be found in the queue-6.10 subdirectory.

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



commit f1a3353a26218c32e529dbb9f19bed000ce38f11
Author: Miri Korenblit <miriam.rachel.korenblit@xxxxxxxxx>
Date:   Wed Jun 5 14:05:06 2024 +0300

    wifi: iwlwifi: mvm: fix re-enabling EMLSR
    
    [ Upstream commit bd40215b19d255b433a91a8bb8088937e5db4284 ]
    
    When EMLSR gets unblocked, the current code checks if the last exit was
    due to an EXIT reason (as opposed to a BLOCKING one), and if so, it
    does nothing, as in this case a MLO scan was scheduled to run in 30
    seconds.
    
    But the code doesn't consider the time that passed from the last exit,
    so if immediately after the exit a blocker occurred (e.g. non-BSS
    interface), and lasts for more than 30 seconds, then the MLO scan and the
    following link selection will decide not to enter EMLSR, and when the
    unblocking event finally happens, the reason is still set to the EXIT one,
    so it will do nothing, and we will not have the chance to re-enable EMLSR.
    
    Fix this by checking also the time that has passed since the last exit,
    only if it is less than 30 seconds, we can count on the scheduled MLO
    scan.
    
    Note that clearing the reason itself can't be done since it is needed
    for the EMLSR prevention mechanism.
    
    Fixes: 2f33561ea8f9 ("wifi: iwlwifi: mvm: trigger link selection after exiting EMLSR")
    Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@xxxxxxxxx>
    Reviewed-by: Johannes Berg <johannes.berg@xxxxxxxxx>
    Link: https://msgid.link/20240605140327.58556fc4cfa9.I4c55b3cd9f20b21b37f28258d0fb6842ba413966@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/link.c b/drivers/net/wireless/intel/iwlwifi/mvm/link.c
index b4a4d25b31cd2..92ac6cc40faa7 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/link.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/link.c
@@ -1082,8 +1082,10 @@ static void iwl_mvm_esr_unblocked(struct iwl_mvm *mvm,
 
 	IWL_DEBUG_INFO(mvm, "EMLSR is unblocked\n");
 
-	/* We exited due to an EXIT reason, so MLO scan was scheduled already */
-	if (mvmvif->last_esr_exit.reason &&
+	/* If we exited due to an EXIT reason, and the exit was in less than
+	 * 30 seconds, then a MLO scan was scheduled already.
+	 */
+	if (!need_new_sel &&
 	    !(mvmvif->last_esr_exit.reason & IWL_MVM_BLOCK_ESR_REASONS)) {
 		IWL_DEBUG_INFO(mvm, "Wait for MLO scan\n");
 		return;




[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