summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAyala Beker <ayala.beker@intel.com>2024-02-29 00:42:25 +0200
committeriwlwifi publisher <>2024-04-17 13:03:42 +0000
commitf235968c8c117010aee6a6cf59de60de2c8eb7c4 (patch)
treea0d81ad2d0e89a0aced93cd0d270735f7c47ace4
parent3d482dc97a116ee4eaafb8ca38d66f82555c681d (diff)
downloadbackport-iwlwifi-f235968c8c117010aee6a6cf59de60de2c8eb7c4.tar.gz
[BUGFIX] wifi: mac80211: correctly set active links upon TTLM
Fix ieee80211_ttlm_set_links() to not set all active links, but instead let the driver know that valid links status changed and select the active links properly. type=bugfix ticket=none fixes=Ie72e47dc6f8c77d4a2f0947b775ef6367fe0edac Change-Id: Ide858f95248fcb3e483c97fcaa14b0cd4e964b10 Signed-off-by: Ayala Beker <ayala.beker@intel.com> Reviewed-on: https://gerritwcs.ir.intel.com/c/iwlwifi-stack-dev/+/96582 automatic-review: iil_jenkins iil_jenkins <EC.GER.UNIX.IIL.JENKINS@INTEL.COM> tested: iil_jenkins iil_jenkins <EC.GER.UNIX.IIL.JENKINS@INTEL.COM> Tested-by: iil_jenkins iil_jenkins <EC.GER.UNIX.IIL.JENKINS@INTEL.COM> Reviewed-by: Miriam Rachel Korenblit <miriam.rachel.korenblit@intel.com> Reviewed-by: Johannes Berg <johannes.berg@intel.com> Reviewed-by: Ilan Peer <ilan.peer@intel.com> x-iwlwifi-stack-dev: 16f142482cf38933885746b9c84e38b76ca9d033
-rw-r--r--net/mac80211/mlme.c10
-rw-r--r--versions2
2 files changed, 10 insertions, 2 deletions
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index 5f4eea53c5..a3daecc3c4 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -5880,6 +5880,15 @@ static int ieee80211_ttlm_set_links(struct ieee80211_sub_if_data *sdata,
}
if (sdata->vif.active_links != active_links) {
+ /* usable links are affected when active_links are changed,
+ * so notify the driver about the status change
+ */
+ changed |= BSS_CHANGED_MLD_VALID_LINKS;
+ active_links &= sdata->vif.active_links;
+ if (!active_links)
+ active_links =
+ BIT(__ffs(sdata->vif.valid_links &
+ ~dormant_links));
ret = ieee80211_set_active_links(&sdata->vif, active_links);
if (ret) {
sdata_info(sdata, "Failed to set TTLM active links\n");
@@ -5894,7 +5903,6 @@ static int ieee80211_ttlm_set_links(struct ieee80211_sub_if_data *sdata,
goto out;
}
- changed |= BSS_CHANGED_MLD_VALID_LINKS;
sdata->vif.suspended_links = suspended_links;
if (sdata->vif.suspended_links)
changed |= BSS_CHANGED_MLD_TTLM;
diff --git a/versions b/versions
index abfd26d463..f6c0246124 100644
--- a/versions
+++ b/versions
@@ -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:11966:313680e2"
+BACKPORTS_GIT_TRACKED="iwlwifi-stack-public:master:11967:16f14248"