mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-04-02 01:08:26 -04:00
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: ddf82e752f ("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>
This commit is contained in:
committed by
Johannes Berg
parent
e7df856787
commit
5dc6975566
@@ -347,8 +347,13 @@ void ieee80211_scan_rx(struct ieee80211_local *local, struct sk_buff *skb)
|
||||
mgmt->da))
|
||||
return;
|
||||
} else {
|
||||
/* Beacons are expected only with broadcast address */
|
||||
if (!is_broadcast_ether_addr(mgmt->da))
|
||||
/*
|
||||
* Non-S1G beacons are expected only with broadcast address.
|
||||
* S1G beacons only carry the SA so no DA check is required
|
||||
* nor possible.
|
||||
*/
|
||||
if (!ieee80211_is_s1g_beacon(mgmt->frame_control) &&
|
||||
!is_broadcast_ether_addr(mgmt->da))
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user