[PATCH mt76] wifi: mt76: mt7996: Switch deflink to seclink only if link lookup does not fail
Lorenzo Bianconi
lorenzo at kernel.org
Sat Mar 7 05:59:12 PST 2026
Do not switch default link to the secondary link in
mt7996_mac_sta_remove_links routine if the lookup for the secondary
msta_link fails.
Fixes: d7e5444f9eb02 ("wifi: mt76: mt7996: Switch to the secondary link if the default one is removed")
Signed-off-by: Lorenzo Bianconi <lorenzo at kernel.org>
---
drivers/net/wireless/mediatek/mt76/mt7996/main.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/drivers/net/wireless/mediatek/mt76/mt7996/main.c b/drivers/net/wireless/mediatek/mt76/mt7996/main.c
index e1e51c9a0767be5a15dae48d627fb45b6f12af21..00e0e5915afe32b70205f1128f32a07ac02223e8 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7996/main.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7996/main.c
@@ -1122,21 +1122,22 @@ mt7996_mac_sta_remove_links(struct mt7996_dev *dev, struct ieee80211_vif *vif,
mphy->num_sta--;
if (msta->deflink_id == link_id) {
- if (msta->seclink_id == msta->deflink_id) {
+ msta->deflink_id = IEEE80211_LINK_UNSPECIFIED;
+ if (msta->seclink_id == link_id) {
/* no secondary link available */
- msta->deflink_id = IEEE80211_LINK_UNSPECIFIED;
msta->seclink_id = msta->deflink_id;
} else {
struct mt7996_sta_link *msta_seclink;
/* switch to the secondary link */
- msta->deflink_id = msta->seclink_id;
msta_seclink = mt76_dereference(
msta->link[msta->seclink_id],
mdev);
- if (msta_seclink)
+ if (msta_seclink) {
+ msta->deflink_id = msta->seclink_id;
mt7996_sta_init_txq_wcid(sta,
msta_seclink->wcid.idx);
+ }
}
} else if (msta->seclink_id == link_id) {
msta->seclink_id = msta->deflink_id;
---
base-commit: 030eea77accf40477be540445fc5a5be52d810a3
change-id: 20260307-mt7996-sta-sec-link-fix-7d6d49e56eb4
Best regards,
--
Lorenzo Bianconi <lorenzo at kernel.org>
More information about the Linux-mediatek
mailing list