mirror of
https://github.com/outbackdingo/mt76.git
synced 2026-10-24 13:26:48 +00:00
wifi: mt76: fix beacon monitor for MBSSID nontransmitted BSS
When associated with a nontransmitted BSS in an MBSSID set, the beacon frame's BSSID (addr3) contains the transmitting AP's BSSID, not the station's associated BSSID. The beacon matching in mt76_rx_beacon_iter() only compared against link_conf->bssid, so beacons were never matched, causing false beacon loss reports. Add a fallback check against link_conf->transmitter_bssid when link_conf->nontransmitted is set, mirroring mac80211's ieee80211_rx_our_beacon() logic. Signed-off-by: Felix Fietkau <[email protected]>
This commit is contained in:
+7
-2
@@ -2274,8 +2274,13 @@ static void mt76_rx_beacon_iter(void *_data, u8 *mac,
|
||||
continue;
|
||||
|
||||
link_conf = rcu_dereference(vif->link_conf[link_id]);
|
||||
if (!link_conf ||
|
||||
!ether_addr_equal(link_conf->bssid, data->bssid))
|
||||
if (!link_conf)
|
||||
continue;
|
||||
|
||||
if (!ether_addr_equal(link_conf->bssid, data->bssid) &&
|
||||
(!link_conf->nontransmitted ||
|
||||
!ether_addr_equal(link_conf->transmitter_bssid,
|
||||
data->bssid)))
|
||||
continue;
|
||||
|
||||
WRITE_ONCE(mlink->beacon_mon_last, jiffies);
|
||||
|
||||
Reference in New Issue
Block a user