[PATCH wireless-next 2/2] wifi: mac80211: keep the BSS color while a color change is pending
From: Andrei-Alexandru Bleortu
Date: Sun Oct 04 2026 - 07:18:19 EST
When a BSS color change starts, mac80211 tells the driver that the BSS
color is disabled, as the Beacon frames say during the countdown, but it
also sets the color to 0. While the BSS Color Disabled subfield is 1, an
HE STA shall keep using its nonzero color, the one it used before, in the
BSS_COLOR of the HE PPDUs it transmits (IEEE Std 802.11-2024, 26.11.4),
and a driver can only do so if it still knows the color.
Keep the current color and only clear enabled.
Assisted-by: LLM
Signed-off-by: Andrei-Alexandru Bleortu <me@xxxxxxxxxxxx>
---
net/mac80211/cfg.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
index 28f99a8f8a..e68edf833f 100644
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -5807,8 +5807,13 @@ ieee80211_color_change(struct wiphy *wiphy, struct net_device *dev,
cfg80211_color_change_started_notify(sdata->dev, params->count, link_id);
+ /* While the color is disabled, the BSS keeps using its current color
+ * (IEEE Std 802.11-2024, 26.11.4)
+ */
if (changed)
- ieee80211_color_change_bss_config_notify(link, 0, 0, changed);
+ ieee80211_color_change_bss_config_notify(link,
+ link_conf->he_bss_color.color,
+ 0, changed);
else
/* if the beacon didn't change, we can finalize immediately */
ieee80211_color_change_finalize(link);
--
2.47.3