diff options
author | Johannes Berg <johannes.berg@intel.com> | 2024-03-12 11:07:18 +0100 |
---|---|---|
committer | iwlwifi publisher <> | 2024-04-17 13:11:40 +0000 |
commit | cb9f67d71ad77ace6f175931f0426c873db1e6cf (patch) | |
tree | dd518376f9982b6e826ec287dd72774bd5c27cb3 | |
parent | c0deff13b6c3a2ef227ecc34ce621ec44789e520 (diff) | |
download | backport-iwlwifi-cb9f67d71ad77ace6f175931f0426c873db1e6cf.tar.gz |
[BUGFIX] wifi: iwlwifi: mvm: allocate STA links only for active links
For the mvm driver, data structures match what's in the firmware,
we allocate FW IDs for them already etc. During link switch we
already allocate/free the STA links appropriately, but initially
we'd allocate them always. Fix this to allocate memory, a STA ID,
etc. only for active links.
type=bugfix
fixes=I0b37f7fb915f343d368a80e3b6fe10c76be5357e
ticket=none
Change-Id: Ie891e1cc9c9df09ae22be6aad5c143e376f40f0e
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Reviewed-on: https://gerritwcs.ir.intel.com/c/iwlwifi-stack-dev/+/98731
automatic-review: iil_jenkins iil_jenkins <EC.GER.UNIX.IIL.JENKINS@INTEL.COM>
Tested-by: iil_jenkins iil_jenkins <EC.GER.UNIX.IIL.JENKINS@INTEL.COM>
tested: iil_jenkins iil_jenkins <EC.GER.UNIX.IIL.JENKINS@INTEL.COM>
Reviewed-by: Miriam Rachel Korenblit <miriam.rachel.korenblit@intel.com>
x-iwlwifi-stack-dev: 72bcec7bc1cc6ffba553b90c7e03a831c6cf0503
-rw-r--r-- | drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c | 6 | ||||
-rw-r--r-- | versions | 2 |
2 files changed, 4 insertions, 4 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c b/drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c index e56500d67e..c714c70bc7 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c @@ -590,14 +590,14 @@ static int iwl_mvm_mld_alloc_sta_links(struct iwl_mvm *mvm, struct ieee80211_sta *sta) { struct iwl_mvm_sta *mvm_sta = iwl_mvm_sta_from_mac80211(sta); + struct ieee80211_link_sta *link_sta; unsigned int link_id; int ret; lockdep_assert_held(&mvm->mutex); - for (link_id = 0; link_id < ARRAY_SIZE(sta->link); link_id++) { - if (!rcu_access_pointer(sta->link[link_id]) || - mvm_sta->link[link_id]) + for_each_sta_active_link(vif, sta, link_sta, link_id) { + if (WARN_ON(mvm_sta->link[link_id])) continue; ret = iwl_mvm_mld_alloc_sta_link(mvm, vif, sta, link_id); @@ -2,4 +2,4 @@ BACKPORTS_VERSION="(see git)" BACKPORTED_KERNEL_VERSION="(see git)" BACKPORTED_KERNEL_NAME="iwlwifi" BACKPORTS_BUILD_TSTAMP=__DATE__ \" \" __TIME__ -BACKPORTS_GIT_TRACKED="iwlwifi-stack-public:master:12009:2a98eb83" +BACKPORTS_GIT_TRACKED="iwlwifi-stack-public:master:12010:72bcec7b" |