Commit e077071e authored by Shayne Chen's avatar Shayne Chen Committed by Felix Fietkau
Browse files

wifi: mt76: mt7996: fix teardown command for an MLD peer



For an MLD peer, we only need to call the teardown command when removing
the last link, and there's no need to call mt7996_mcu_add_sta() for the
earlier links.

Fixes: c1d6dd5d ("wifi: mt76: mt7996: Add mt7996_mcu_teardown_mld_sta rouine")
Signed-off-by: default avatarShayne Chen <shayne.chen@mediatek.com>
Acked-by: default avatarLorenzo Bianconi <lorenzo@kernel.org>
Link: https://patch.msgid.link/20251106064203.1000505-6-shayne.chen@mediatek.com


Signed-off-by: default avatarFelix Fietkau <nbd@nbd.name>
parent bb705a60
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -1206,13 +1206,13 @@ mt7996_mac_sta_event(struct mt7996_dev *dev, struct ieee80211_vif *vif,
				mt7996_mac_twt_teardown_flow(dev, link,
							     msta_link, i);

			if (sta->mlo && links == BIT(link_id)) /* last link */
				mt7996_mcu_teardown_mld_sta(dev, link,
							    msta_link);
			else
			if (!sta->mlo)
				mt7996_mcu_add_sta(dev, link_conf, link_sta,
						   link, msta_link,
						   CONN_STATE_DISCONNECT, false);
			else if (sta->mlo && links == BIT(link_id)) /* last link */
				mt7996_mcu_teardown_mld_sta(dev, link,
							    msta_link);
			msta_link->wcid.sta_disabled = 1;
			msta_link->wcid.sta = 0;
			links = links & ~BIT(link_id);