summaryrefslogtreecommitdiffstats
path: root/net/mac80211
diff options
context:
space:
mode:
authorAditya Kumar Singh <quic_adisi@quicinc.com>2024-02-05 21:59:52 +0530
committerJohannes Berg <johannes.berg@intel.com>2024-02-12 21:15:34 +0100
commit16405bd7fd2ea8553bc87a5aa9720e3014e91df6 (patch)
tree85c5b85e4f0d47220b70e93d04220568519aadff /net/mac80211
parentec67d6e0d491d2a2df270ddcb7aa44db0984e11c (diff)
downloadlinux-16405bd7fd2ea8553bc87a5aa9720e3014e91df6.tar.gz
linux-16405bd7fd2ea8553bc87a5aa9720e3014e91df6.tar.bz2
linux-16405bd7fd2ea8553bc87a5aa9720e3014e91df6.zip
wifi: mac80211: remove only own link stations during stop_ap
Currently, whenever AP link is brought down via ieee80211_stop_ap() function, all stations connected to the sdata are flushed. However, in case of MLO there is a requirement to flush only stations connected to that link and not all. For instance - Consider 2 GHz and 5 GHz are AP MLD. Now due to some reason 5 GHz link of this AP is going down (link removal or any other case). All stations connected, even legacy stations connected to 2 GHz link AP would also be flushed. Flushing of other link stations is not desirable. Fix this issue by passing self link ID to sta_flush() function. This would then only remove the stations which are still using the passed link ID as their link sta. Other stations will not be affected. Signed-off-by: Aditya Kumar Singh <quic_adisi@quicinc.com> Link: https://msgid.link/20240205162952.1697646-4-quic_adisi@quicinc.com Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211')
-rw-r--r--net/mac80211/cfg.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
index 41fca30c896e..0744113f3535 100644
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -1616,7 +1616,7 @@ static int ieee80211_stop_ap(struct wiphy *wiphy, struct net_device *dev,
link_conf->ema_ap = false;
link_conf->bssid_indicator = 0;
- __sta_info_flush(sdata, true, -1);
+ __sta_info_flush(sdata, true, link_id);
ieee80211_free_keys(sdata, true);
link_conf->enable_beacon = false;