wifi: iwlwifi: mvm: unify link info initialization
authorJohannes Berg <johannes.berg@intel.com>
Mon, 28 Oct 2024 11:54:47 +0000 (13:54 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Thu, 7 Nov 2024 13:42:28 +0000 (14:42 +0100)
Move the link info initialization to a common function so
that it can be modified more easily later.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20241028135215.ab963cc90e56.Ice5cf66dec8351f8e94ca4c5b3a27e9311d0c20a@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/link.c
drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c
drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c
drivers/net/wireless/intel/iwlwifi/mvm/mvm.h

index 628baf67b2081bd011e0e8c096fb979f6683e9cd..492e0da553ab9670c058433b641e646a0b866393 100644 (file)
@@ -1167,3 +1167,14 @@ void iwl_mvm_unblock_esr(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
        if (!mvmvif->esr_disable_reason)
                iwl_mvm_esr_unblocked(mvm, vif);
 }
+
+void iwl_mvm_init_link(struct iwl_mvm_vif_link_info *link)
+{
+       link->bcast_sta.sta_id = IWL_MVM_INVALID_STA;
+       link->mcast_sta.sta_id = IWL_MVM_INVALID_STA;
+       link->ap_sta_id = IWL_MVM_INVALID_STA;
+
+       for (int r = 0; r < NUM_IWL_MVM_SMPS_REQ; r++)
+               link->smps_requests[r] =
+                       IEEE80211_SMPS_AUTOMATIC;
+}
index 9a43df49493fb05b24c6ae438feddba18d604521..c8bc26380b4afeed36823a55955c2003a726a0e1 100644 (file)
@@ -216,7 +216,7 @@ int iwl_mvm_mac_ctxt_init(struct iwl_mvm *mvm, struct ieee80211_vif *vif)
                .preferred_tsf = NUM_TSF_IDS,
                .found_vif = false,
        };
-       int ret, i;
+       int ret;
 
        lockdep_assert_held(&mvm->mutex);
 
@@ -298,9 +298,7 @@ int iwl_mvm_mac_ctxt_init(struct iwl_mvm *mvm, struct ieee80211_vif *vif)
        mvmvif->time_event_data.id = TE_MAX;
        mvmvif->roc_activity = ROC_NUM_ACTIVITIES;
 
-       mvmvif->deflink.bcast_sta.sta_id = IWL_MVM_INVALID_STA;
-       mvmvif->deflink.mcast_sta.sta_id = IWL_MVM_INVALID_STA;
-       mvmvif->deflink.ap_sta_id = IWL_MVM_INVALID_STA;
+       iwl_mvm_init_link(&mvmvif->deflink);
 
        /* No need to allocate data queues to P2P Device MAC and NAN.*/
        if (vif->type == NL80211_IFTYPE_P2P_DEVICE)
@@ -316,9 +314,6 @@ int iwl_mvm_mac_ctxt_init(struct iwl_mvm *mvm, struct ieee80211_vif *vif)
                mvmvif->deflink.cab_queue = IWL_MVM_DQA_GCAST_QUEUE;
        }
 
-       for (i = 0; i < NUM_IWL_MVM_SMPS_REQ; i++)
-               mvmvif->deflink.smps_requests[i] = IEEE80211_SMPS_AUTOMATIC;
-
        return 0;
 
 exit_fail:
index a5c38f389c69808a8d0d6dd3a1f282d0bc60c80d..4acfa6c3844f925b024c2ab3f992164affe9c682 100644 (file)
@@ -1161,8 +1161,6 @@ iwl_mvm_mld_change_vif_links(struct ieee80211_hw *hw,
        int err, i;
 
        for (i = 0; i < IEEE80211_MLD_MAX_NUM_LINKS; i++) {
-               int r;
-
                if (test_bit(IWL_MVM_STATUS_IN_HW_RESTART, &mvm->status))
                        break;
 
@@ -1174,14 +1172,8 @@ iwl_mvm_mld_change_vif_links(struct ieee80211_hw *hw,
                        goto free;
                }
 
-               new_link[i]->bcast_sta.sta_id = IWL_MVM_INVALID_STA;
-               new_link[i]->mcast_sta.sta_id = IWL_MVM_INVALID_STA;
-               new_link[i]->ap_sta_id = IWL_MVM_INVALID_STA;
                new_link[i]->fw_link_id = IWL_MVM_FW_LINK_ID_INVALID;
-
-               for (r = 0; r < NUM_IWL_MVM_SMPS_REQ; r++)
-                       new_link[i]->smps_requests[r] =
-                               IEEE80211_SMPS_AUTOMATIC;
+               iwl_mvm_init_link(new_link[i]);
        }
 
        mutex_lock(&mvm->mutex);
index 5d85661e01f5a22a609e72a6ecf36b049a450fe8..9d3072ac8c58df6f26851b47c49e24e1756cd8c3 100644 (file)
@@ -2105,6 +2105,7 @@ int iwl_mvm_binding_remove_vif(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
 u32 iwl_mvm_get_lmac_id(struct iwl_mvm *mvm, enum nl80211_band band);
 
 /* Links */
+void iwl_mvm_init_link(struct iwl_mvm_vif_link_info *link);
 int iwl_mvm_set_link_mapping(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
                             struct ieee80211_bss_conf *link_conf);
 int iwl_mvm_add_link(struct iwl_mvm *mvm, struct ieee80211_vif *vif,