DORMANTno replies LANDED

Landed in mainline as eb87d3e08992 on 2021-11-26.

[PATCH] mac80211: notify non-transmitting BSS of color changes

From: Rameshkumar Sundaram <hidden>
Date: 2021-11-17 10:57:40
Subsystem: mac80211, the rest · Maintainers: Johannes Berg, Linus Torvalds

From: John Crispin <john@phrozen.org>

When color change is triggered in multiple bssid case, allow
only for transmitting BSS, and when it changes its bss color,
notify the non transmitting BSSs also of the new bss color.

Signed-off-by: John Crispin <john@phrozen.org>
Co-developed-by: Lavanya Suresh <redacted>
Signed-off-by: Lavanya Suresh <redacted>
Co-developed-by: Rameshkumar Sundaram <redacted>
Signed-off-by: Rameshkumar Sundaram <redacted>

---
 net/mac80211/cfg.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
index e2b791c..f36f249 100644
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -4264,6 +4264,21 @@ ieee80211_color_change_bss_config_notify(struct ieee80211_sub_if_data *sdata,
 	changed |= BSS_CHANGED_HE_BSS_COLOR;
 
 	ieee80211_bss_info_change_notify(sdata, changed);
+
+	if (!sdata->vif.bss_conf.nontransmitted && sdata->vif.mbssid_tx_vif) {
+		struct ieee80211_sub_if_data *child;
+
+		mutex_lock(&sdata->local->iflist_mtx);
+		list_for_each_entry(child, &sdata->local->interfaces, list) {
+			if (child != sdata && child->vif.mbssid_tx_vif == &sdata->vif) {
+				child->vif.bss_conf.he_bss_color.color = color;
+				child->vif.bss_conf.he_bss_color.enabled = enable;
+				ieee80211_bss_info_change_notify(child,
+								 BSS_CHANGED_HE_BSS_COLOR);
+			}
+		}
+		mutex_unlock(&sdata->local->iflist_mtx);
+	}
 }
 
 static int ieee80211_color_change_finalize(struct ieee80211_sub_if_data *sdata)
@@ -4348,6 +4363,9 @@ ieee80211_color_change(struct wiphy *wiphy, struct net_device *dev,
 
 	sdata_assert_lock(sdata);
 
+	if (sdata->vif.bss_conf.nontransmitted)
+		return -EINVAL;
+
 	mutex_lock(&local->mtx);
 
 	/* don't allow another color change if one is already active or if csa
-- 
2.7.4
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help