]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
wifi: iwlwifi: mvm: don't skip link selection
authorMiri Korenblit <miriam.rachel.korenblit@intel.com>
Sun, 12 May 2024 12:24:59 +0000 (15:24 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Thu, 23 May 2024 08:53:04 +0000 (10:53 +0200)
If we exit EMLSR due to a IWL_MVM_ESR_EXIT*, a MLO scan followed by a
link selection is scheduled with a delay of 30 seconds.
If during that 30 seconds EMLSR was blocked and unblocked
(IWL_MVM_ESR_BLOCKED*), we would still want to get the needed data from
the MLO scan and select link accordingly, and not return immediately to
EMLSR.

Fixes: 2f33561ea8f9 ("wifi: iwlwifi: mvm: trigger link selection after exiting EMLSR")
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Link: https://msgid.link/20240512152312.caab27a8dd8f.I63f67e213d5e05416f71513a8d914917d59aa44f@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/link.c

index fd8a21891d262abce7854e52074acebfacb264e7..0745229c8c37529e4b26dc555bfe110a5efaa7e3 100644 (file)
@@ -1076,6 +1076,13 @@ 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 &&
+           !(mvmvif->last_esr_exit.reason & IWL_MVM_BLOCK_ESR_REASONS)) {
+               IWL_DEBUG_INFO(mvm, "Wait for MLO scan\n");
+               return;
+       }
+
        /*
         * If EMLSR was blocked for more than 30 seconds, or the last link
         * selection decided to not enter EMLSR, trigger a new scan.