linux/net/mac80211
Aditya Kumar Singh 7009aca194 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:04:03 +02:00
..
tests wifi: mac80211: do not permit 40 MHz EHT operation on 5/6 GHz 2025-08-28 13:39:16 +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: add support for S1G aggregation 2025-06-24 15:19:28 +02:00
agg-tx.c wifi: mac80211: add support for S1G aggregation 2025-06-24 15:19:28 +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: consider links for validating SCAN_FLAG_AP in scan request during MLO 2025-10-15 12:03:52 +02:00
chan.c wifi: mac80211: only assign chanctx in reconfig 2025-07-15 11:00:39 +02:00
debug.h wifi: mac80211: don't WARN for late channel/color switch 2025-06-17 14:30:06 +02:00
debugfs.c wifi: mac80211: remove DISALLOW_PUNCTURING_5GHZ code 2025-07-09 11:52:36 +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: Clean up debugfs_key deadcode 2025-01-13 13:51:19 +01:00
debugfs_key.h wifi: mac80211: Clean up debugfs_key deadcode 2025-01-13 13:51:19 +01:00
debugfs_netdev.c wifi: mac80211: support initialising current S1G short beacon index 2025-07-18 14:14:44 +02: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-04-23 15:22:11 +02: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: don't send keys to driver when fips_enabled 2025-07-15 11:00:38 +02:00
driver-ops.h wifi: mac80211: fix incorrect type for ret 2025-08-26 13:46:48 +02:00
drop.h wifi: mac80211: Drop cooked monitor support 2025-02-11 11:58:17 +01:00
eht.c wifi: mac80211: fix MPDU length parsing for EHT 5/6 GHz 2025-03-12 09:29:14 +01:00
ethtool.c wifi: mac80211: Add counter for all monitor interfaces 2025-02-26 15:44:15 +01: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: add some support for RX OMI power saving 2025-01-13 15:26:43 +01:00
ht.c wifi: mac80211: handle WLAN_HT_ACTION_NOTIFY_CHANWIDTH async 2025-07-15 11:00:39 +02:00
ibss.c wifi: mac80211: add support towards MLO handling of station statistics 2025-06-24 15:19:26 +02:00
ieee80211_i.h wifi: mac80211: support initialising current S1G short beacon index 2025-07-18 14:14:44 +02:00
iface.c wifi: mac80211: handle WLAN_HT_ACTION_NOTIFY_CHANWIDTH async 2025-07-15 11:00:39 +02:00
Kconfig mac80211: MAC80211_MESSAGE_TRACING should depend on TRACING 2024-10-08 21:14:57 +02:00
key.c wifi: mac80211: don't require cipher and keylen in gtk rekey 2025-07-22 10:43:19 +02:00
key.h wifi: mac80211: remove key_mtx 2023-09-11 11:27:22 +02:00
led.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02: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-07-09 11:41:38 +02:00
main.c wifi: mac80211: Make CONNECTION_MONITOR optional for MLO sta 2025-10-15 12:03:51 +02:00
Makefile wifi: mac80211: move element parsing to a new file 2024-02-08 15:00:43 +01:00
mesh.c wifi: mac80211: support initialising current S1G short beacon index 2025-07-18 14:14:44 +02: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 treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
mesh_pathtbl.c wifi: mac80211: Replace __get_unaligned_cpu32 in mesh_pathtbl.c 2025-04-23 15:28:50 +02:00
mesh_plink.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
mesh_ps.c wifi: mac80211: mesh: fix some kdoc warnings 2023-10-23 11:43:27 +02:00
mesh_sync.c wifi: mac80211, cfg80211: miscellaneous spelling fixes 2024-10-08 21:52:09 +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: do not permit 40 MHz EHT operation on 5/6 GHz 2025-08-28 13:39:16 +02:00
ocb.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
offchannel.c wifi: cfg80211/mac80211: Add support to get radio index 2025-06-24 15:19:27 +02:00
parse.c wifi: mac80211: fix non-transmitted BSSID profile search 2025-07-07 10:42:48 +02:00
pm.c wifi: cfg80211/mac80211: Add support to get radio index 2025-06-24 15:19:27 +02:00
rate.c Revert "mac80211: Dynamically set CoDel parameters per station" 2025-04-23 15:22:11 +02:00
rate.h wifi: mac80211: convert debugfs files to short fops 2024-10-23 16:47:07 +02:00
rc80211_minstrel_ht.c wifi: cfg80211/mac80211: remove more 5/10 MHz code 2025-04-23 15:21:32 +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:04:03 +02:00
s1g.c wifi: mac80211: handle station association response with S1G 2025-06-24 15:19:28 +02:00
scan.c wifi: mac80211: copy first_part into HW scan 2025-07-09 11:52:36 +02:00
spectmgmt.c wifi: mac80211: Avoid -Wflex-array-member-not-at-end warnings 2025-04-23 15:20:20 +02:00
sta_info.c wifi: mac80211: fix reporting of all valid links in sta_set_sinfo() 2025-10-15 12:03:55 +02:00
sta_info.h wifi: mac80211: add support to accumulate removed link statistics 2025-06-24 15:19:26 +02:00
status.c wifi: mac80211: restore monitor for outgoing frames 2025-04-23 14:44:22 +02:00
tdls.c wifi: mac80211: reject TDLS operations when station is not associated 2025-07-18 14:11:27 +02:00
tkip.c Merge net-next/main to resolve conflicts 2024-10-09 08:59:22 +02: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: cfg80211/mac80211: Add support to get radio index 2025-06-24 15:19:27 +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-07-18 14:29:30 +02:00
util.c wifi: mac80211: support initialising current S1G short beacon index 2025-07-18 14:14:44 +02:00
vht.c wifi: mac80211: make VHT opmode NSS ignore a debug message 2025-07-15 10:59:11 +02:00
wbrf.c wifi: mac80211: use cfg80211_chandef_get_width() 2025-03-12 09:50:27 +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 wifi: mac80211: remove misleading j_0 construction parts 2024-10-23 16:46:58 +02:00
wpa.h wifi: mac80211: remove cipher scheme support 2022-06-10 15:35:53 +02:00