diff options
author | Ayala Beker <ayala.beker@intel.com> | 2024-02-29 00:42:25 +0200 |
---|---|---|
committer | iwlwifi publisher <> | 2024-04-17 13:03:42 +0000 |
commit | f235968c8c117010aee6a6cf59de60de2c8eb7c4 (patch) | |
tree | a0d81ad2d0e89a0aced93cd0d270735f7c47ace4 | |
parent | 3d482dc97a116ee4eaafb8ca38d66f82555c681d (diff) | |
download | backport-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.c | 10 | ||||
-rw-r--r-- | versions | 2 |
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; @@ -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" |