linux/net/mac80211
Aditya Kumar Singh 1c87341675 wifi: mac80211: fix Rx packet handling when pubsta information is not available
[ Upstream commit 32d340ae67 ]

In ieee80211_rx_handle_packet(), if the caller does not provide pubsta
information, an attempt is made to find the station using the address 2
(source address) field in the header. Since pubsta is missing, link
information such as link_valid and link_id is also unavailable. Now if such
a situation comes, and if a matching ML station entry is found based on
the source address, currently the packet is dropped due to missing link ID
in the status field which is not correct.

Hence, to fix this issue, if link_valid is not set and the station is an
ML station, make an attempt to find a link station entry using the source
address. If a valid link station is found, derive the link ID and proceed
with packet processing. Otherwise, drop the packet as per the existing
flow.

Fixes: ea9d807b56 ("wifi: mac80211: add link information in ieee80211_rx_status")
Suggested-by: Vasanthakumar Thiagarajan <vasanthakumar.thiagarajan@oss.qualcomm.com>
Signed-off-by: Aditya Kumar Singh <aditya.kumar.singh@oss.qualcomm.com>
Link: https://patch.msgid.link/20250917-fix_data_packet_rx_with_mlo_and_no_pubsta-v1-1-8cf971a958ac@oss.qualcomm.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2025-10-15 12:00:13 +02:00
..
tests wifi: mac80211: pass parsed TPE data to drivers 2024-05-23 10:35:04 +02:00
aead_api.c mac80211: Check crypto_aead_encrypt for errors 2021-03-16 21:20:41 +01:00
aead_api.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
aes_ccm.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
aes_cmac.c mac80211: aes_cmac: check crypto_shash_setkey() return value 2021-04-19 12:01:40 +02:00
aes_cmac.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
aes_gcm.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
aes_gmac.c mac80211: Check crypto_aead_encrypt for errors 2021-03-16 21:20:41 +01:00
aes_gmac.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
agg-rx.c wifi: mac80211: refactor block ack management code 2024-08-27 10:12:50 +02:00
agg-tx.c wifi: mac80211: refactor block ack management code 2024-08-27 10:12:50 +02:00
airtime.c wifi: mac80211: introduce EHT rate support in AQL airtime 2024-09-06 12:58:36 +02:00
cfg.c wifi: mac80211: check basic rates validity in sta_link_apply_parameters 2025-08-20 18:30:56 +02:00
chan.c wifi: mac80211: update radar_required in channel context after channel switch 2025-08-20 18:30:36 +02:00
debug.h wifi: mac80211: fix mlme_link_id_dbg() 2024-03-25 15:22:53 +01:00
debugfs.c wifi: mac80211: add strict mode disabling workarounds 2025-04-20 10:15:17 +02:00
debugfs.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
debugfs_key.c wifi: mac80211: remove key_mtx 2023-09-11 11:27:22 +02:00
debugfs_key.h mac80211: Support BIGTK configuration for Beacon protection 2020-02-24 10:35:57 +01:00
debugfs_netdev.c wifi: mac80211: prohibit deactivating all links 2025-02-08 09:57:14 +01:00
debugfs_netdev.h wifi: mac80211: fix driver debugfs for vif type change 2024-02-02 13:09:55 +01:00
debugfs_sta.c Revert "mac80211: Dynamically set CoDel parameters per station" 2025-06-27 11:11:33 +01:00
debugfs_sta.h wifi: mac80211: add API to show the link STAs in debugfs 2022-10-07 15:23:41 +02:00
driver-ops.c wifi: mac80211: Fix sparse warning for monitor_sdata 2025-04-10 14:39:36 +02:00
driver-ops.h wifi: mac80211: fix incorrect type for ret 2025-09-25 11:13:41 +02:00
drop.h wifi: mac80211: improve drop for action frame return 2024-03-25 15:39:28 +01:00
eht.c wifi: mac80211: add helpers to access sband iftype data 2023-06-14 11:57:29 +02:00
ethtool.c wifi: mac80211: ethtool: always hold wiphy mutex 2023-09-25 09:00:39 +02:00
fils_aead.c wifi: mac80211: Do not include crypto/algapi.h 2023-08-24 08:42:36 +02:00
fils_aead.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
he.c wifi: mac80211: correctly parse Spatial Reuse Parameter Set element 2024-05-29 15:35:12 +02:00
ht.c wifi: mac80211: refactor block ack management code 2024-08-27 10:12:50 +02:00
ibss.c wifi: mac80211: extend ifcomb check functions for multi-radio 2024-07-09 11:36:12 +02:00
ieee80211_i.h wifi: mac80211: Create separate links for VLAN interfaces 2025-07-06 11:01:40 +02:00
iface.c wifi: mac80211: Create separate links for VLAN interfaces 2025-07-06 11:01:40 +02:00
Kconfig mac80211: MAC80211_MESSAGE_TRACING should depend on TRACING 2024-10-08 21:14:57 +02:00
key.c wireless fixes for v6.12-rc5 2024-10-25 10:44:41 +01:00
key.h wifi: mac80211: remove key_mtx 2023-09-11 11:27:22 +02:00
led.c leds: Change led_trigger_blink[_oneshot]() delay parameters to pass-by-value 2023-05-25 12:16:27 +01:00
led.h leds: Change led_trigger_blink[_oneshot]() delay parameters to pass-by-value 2023-05-25 12:16:27 +01:00
link.c wifi: mac80211: avoid weird state in error path 2025-08-20 18:30:32 +02:00
main.c wifi: mac80211: increase scan_ies_len for S1G 2025-09-25 11:13:41 +02:00
Makefile wifi: mac80211: move element parsing to a new file 2024-02-08 15:00:43 +01:00
mesh.c wifi: mac80211: fix mbss changed flags corruption on 32 bit systems 2025-01-09 13:33:43 +01:00
mesh.h wifi: mac80211: split mesh fast tx cache into local/proxied/forwarded 2024-04-17 09:21:32 +02:00
mesh_hwmp.c wifi: mac80211: do not offer a mesh path if forwarding is disabled 2025-06-27 11:11:32 +01:00
mesh_pathtbl.c wifi: mac80211: remove redundant unlikely() around IS_ERR() 2024-08-27 10:28:55 +02:00
mesh_plink.c wifi: mac80211: simplify adding supported rates 2024-02-08 15:00:43 +01:00
mesh_ps.c wifi: mac80211: mesh: fix some kdoc warnings 2023-10-23 11:43:27 +02:00
mesh_sync.c wifi: mac80211: mesh: fix some kdoc warnings 2023-10-23 11:43:27 +02:00
michael.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
michael.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
mlme.c wifi: mac80211: don't complete management TX on SAE commit 2025-08-20 18:30:32 +02:00
ocb.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
offchannel.c wifi: mac80211: don't use rate mask for offchannel TX either 2024-08-27 10:13:23 +02:00
parse.c wifi: mac80211: fix non-transmitted BSSID profile search 2025-07-17 18:37:17 +02:00
pm.c wifi: mac80211: handle ieee80211_radar_detected() for MLO 2024-09-06 13:01:05 +02:00
rate.c Revert "mac80211: Dynamically set CoDel parameters per station" 2025-06-27 11:11:33 +01:00
rate.h wifi: mac80211: make ieee80211_check_rate_mask() link-aware 2022-07-15 11:43:21 +02:00
rc80211_minstrel_ht.c wifi: mac80211: remove shifted rate support 2023-09-13 11:22:16 +02:00
rc80211_minstrel_ht.h wifi: mac80211: minstrel_ht: remove unused has_mrr member from struct minstrel_priv 2022-10-07 15:25:05 +02:00
rc80211_minstrel_ht_debugfs.c [tree-wide] finally take no_llseek out 2024-09-27 08:18:43 -07:00
rx.c wifi: mac80211: fix Rx packet handling when pubsta information is not available 2025-10-15 12:00:13 +02:00
s1g.c wifi: mac80211: remove sta_mtx 2023-09-11 11:27:22 +02:00
scan.c wifi: cfg80211/mac80211: correctly parse S1G beacon optional elements 2025-06-19 15:32:19 +02:00
spectmgmt.c wifi: mac80211: fix AP chandef capturing in CSA 2024-07-10 12:35:58 +02:00
sta_info.c Revert "mac80211: Dynamically set CoDel parameters per station" 2025-06-27 11:11:33 +01:00
sta_info.h Revert "mac80211: Dynamically set CoDel parameters per station" 2025-06-27 11:11:33 +01:00
status.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
tdls.c wifi: mac80211: reject TDLS operations when station is not associated 2025-08-15 12:13:44 +02:00
tkip.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
tkip.h Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2019-07-08 20:57:08 -07:00
trace.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
trace.h wifi: mac80211: inform the low level if drv_stop() is a suspend 2024-06-26 10:25:46 +02:00
trace_msg.h wifi: mac80211: remove unused MAX_MSG_LEN define 2024-02-08 12:50:09 +01:00
tx.c Reapply "wifi: mac80211: Update skb's control block key in ieee80211_tx_dequeue()" 2025-08-15 12:13:45 +02:00
util.c wifi: mac80211: fix beacon interval calculation overflow 2025-07-06 11:01:40 +02:00
vht.c wifi: mac80211: optionally pass chandef to ieee80211_sta_cur_vht_bw() 2024-06-26 10:21:54 +02:00
wbrf.c wifi: mac80211: Drop WBRF debugging statements 2024-01-26 10:43:33 +01:00
wep.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
wep.h mac80211: make ieee80211_wep_init() return void 2020-02-07 12:40:34 +01:00
wme.c wifi: mac80211: fix qos on mesh interfaces 2023-03-22 13:46:38 +01:00
wme.h wifi: mac80211: Drop support for TX push path 2022-10-10 11:06:14 +02:00
wpa.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
wpa.h wifi: mac80211: remove cipher scheme support 2022-06-10 15:35:53 +02:00