Skip to content

Commit 5dc6975

Browse files
donnaskiezjmberg-intel
authored andcommitted
wifi: mac80211: don't perform DA check on S1G beacon
S1G beacons don't contain the DA field as per IEEE80211-2024 9.3.4.3, so the DA broadcast check reads the SA address of the S1G beacon which will subsequently lead to the beacon being dropped. As a result, passive scanning is not possible. Fix this by only performing the check on non-S1G beacons to allow S1G long beacons to be processed during a passive scan. Fixes: ddf82e7 ("wifi: mac80211: Allow beacons to update BSS table regardless of scan") Signed-off-by: Lachlan Hodges <lachlan.hodges@morsemicro.com> Link: https://patch.msgid.link/20260120031122.309942-1-lachlan.hodges@morsemicro.com Signed-off-by: Johannes Berg <johannes.berg@intel.com>
1 parent e7df856 commit 5dc6975

1 file changed

Lines changed: 7 additions & 2 deletions

File tree

net/mac80211/scan.c

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -347,8 +347,13 @@ void ieee80211_scan_rx(struct ieee80211_local *local, struct sk_buff *skb)
347347
mgmt->da))
348348
return;
349349
} else {
350-
/* Beacons are expected only with broadcast address */
351-
if (!is_broadcast_ether_addr(mgmt->da))
350+
/*
351+
* Non-S1G beacons are expected only with broadcast address.
352+
* S1G beacons only carry the SA so no DA check is required
353+
* nor possible.
354+
*/
355+
if (!ieee80211_is_s1g_beacon(mgmt->frame_control) &&
356+
!is_broadcast_ether_addr(mgmt->da))
352357
return;
353358
}
354359

0 commit comments

Comments
 (0)