]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
wifi: iwlwifi: mvm: simplify EMLSR blocking
authorJohannes Berg <johannes.berg@intel.com>
Wed, 3 Jul 2024 09:58:51 +0000 (12:58 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Thu, 4 Jul 2024 11:50:04 +0000 (13:50 +0200)
If EMLSR is already blocked for the same reason that
it's blocked for again, there's no need to actually
do any work, so exit early from the function. Also,
print the state after modifying it, so it's clearer.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20240703125541.6995464f0bac.Iac9fe3546ca0a0d6bc6666c822a667ab257419a9@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/link.c

index 73527781f89af72d7ac67f9ec04493ab25efda86..4e702e7a4b823e59088a6209408b46ed54fcdd9e 100644 (file)
@@ -1033,15 +1033,17 @@ void iwl_mvm_block_esr(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
        if (WARN_ON(!(reason & IWL_MVM_BLOCK_ESR_REASONS)))
                return;
 
-       if (!(mvmvif->esr_disable_reason & reason)) {
-               IWL_DEBUG_INFO(mvm,
-                              "Blocking EMLSR mode. reason = %s (0x%x)\n",
-                              iwl_get_esr_state_string(reason), reason);
-               iwl_mvm_print_esr_state(mvm, mvmvif->esr_disable_reason);
-       }
+       if (mvmvif->esr_disable_reason & reason)
+               return;
+
+       IWL_DEBUG_INFO(mvm,
+                      "Blocking EMLSR mode. reason = %s (0x%x)\n",
+                      iwl_get_esr_state_string(reason), reason);
 
        mvmvif->esr_disable_reason |= reason;
 
+       iwl_mvm_print_esr_state(mvm, mvmvif->esr_disable_reason);
+
        iwl_mvm_exit_esr(mvm, vif, reason, link_to_keep);
 }