From 03f86e9294de372d7b8d8257be831f36230ee293 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Fri, 7 Aug 2026 07:21:18 +0200 Subject: [PATCH] wifi: mt76: mt7996: take over connection monitoring mt76 already runs its own beacon monitor. mt76_beacon_mon_check() walks the affiliated links of an MLD, counts a miss per link, and holds off while the phy is off channel. mt7996 feeds it via mt76_rx_beacon() but never claims CONNECTION_MONITOR, so mac80211 arms its legacy monitor on top. That one knows a single interface rather than a set of links, and it keeps counting while the radio is away serving another link, so it reaches its seven beacon intervals and tears down an association that is still carrying traffic on the other links. Signed-off-by: Felix Fietkau --- mt7996/init.c | 1 + 1 file changed, 1 insertion(+) diff --git a/mt7996/init.c b/mt7996/init.c index 6adde961..c49a6c6e 100644 --- a/mt7996/init.c +++ b/mt7996/init.c @@ -541,6 +541,7 @@ mt7996_init_wiphy(struct ieee80211_hw *hw, struct mtk_wed_device *wed) ieee80211_hw_set(hw, NO_VIRTUAL_MONITOR); ieee80211_hw_set(hw, SUPPORTS_MULTI_BSSID); ieee80211_hw_set(hw, CHANCTX_STA_CSA); + ieee80211_hw_set(hw, CONNECTION_MONITOR); hw->max_tx_fragments = 4; wiphy->txq_memory_limit = 32 << 20; /* 32 MiB */