diff options
| author | Miri Korenblit <[email protected]> | 2023-05-24 17:42:04 +0000 |
|---|---|---|
| committer | Johannes Berg <[email protected]> | 2023-06-06 11:04:12 +0000 |
| commit | cec74584dc19a604c39a9b77a819b35e684e6e4c (patch) | |
| tree | 026e6c1e6d9fdeb23f35be38d4b3249cfedc2cf1 | |
| parent | wifi: iwlwifi: don't silently ignore missing suspend or resume ops (diff) | |
| download | kernel-cec74584dc19a604c39a9b77a819b35e684e6e4c.tar.gz kernel-cec74584dc19a604c39a9b77a819b35e684e6e4c.zip | |
wifi: iwlwifi: mvm: Make iwl_mvm_diversity_iter() MLO aware
This function is MLO related, so it should iterate over all the links,
and not only on deflink.
Signed-off-by: Miri Korenblit <[email protected]>
Signed-off-by: Gregory Greenman <[email protected]>
Link: https://lore.kernel.org/r/20230524203151.56a9c709e987.I9716195ec288cce2c929338c254ee9add8cfcc1f@changeid
Signed-off-by: Johannes Berg <[email protected]>
| -rw-r--r-- | drivers/net/wireless/intel/iwlwifi/mvm/utils.c | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/utils.c b/drivers/net/wireless/intel/iwlwifi/mvm/utils.c index af31b09c3966..2a10d851d2e4 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/utils.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/utils.c @@ -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; + } } } } |
