wifi: iwlwifi: mvm: Make iwl_mvm_diversity_iter() MLO aware
authorMiri Korenblit <miriam.rachel.korenblit@intel.com>
Wed, 24 May 2023 17:42:04 +0000 (20:42 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Tue, 6 Jun 2023 11:04:12 +0000 (13:04 +0200)
This function is MLO related, so it should iterate over all the links,
and not only on deflink.

Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
Link: https://lore.kernel.org/r/20230524203151.56a9c709e987.I9716195ec288cce2c929338c254ee9add8cfcc1f@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/utils.c

index af31b09..2a10d85 100644 (file)
@@ -413,16 +413,20 @@ static void iwl_mvm_diversity_iter(void *_data, u8 *mac,
 {
        struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
        struct iwl_mvm_diversity_iter_data *data = _data;
-       int i;
+       int i, link_id;
 
-       if (mvmvif->deflink.phy_ctxt != data->ctxt)
-               return;
+       for_each_mvm_vif_valid_link(mvmvif, link_id) {
+               struct iwl_mvm_vif_link_info *link_info = mvmvif->link[link_id];
 
-       for (i = 0; i < NUM_IWL_MVM_SMPS_REQ; i++) {
-               if (mvmvif->deflink.smps_requests[i] == IEEE80211_SMPS_STATIC ||
-                   mvmvif->deflink.smps_requests[i] == IEEE80211_SMPS_DYNAMIC) {
-                       data->result = false;
-                       break;
+               if (link_info->phy_ctxt != data->ctxt)
+                       continue;
+
+               for (i = 0; i < NUM_IWL_MVM_SMPS_REQ; i++) {
+                       if (link_info->smps_requests[i] == IEEE80211_SMPS_STATIC ||
+                           link_info->smps_requests[i] == IEEE80211_SMPS_DYNAMIC) {
+                               data->result = false;
+                               break;
+                       }
                }
        }
 }