kernel_samsung_a53x/net/mac80211
Johannes Berg a2036d5d3c wifi: mac80211: fix BA session teardown race
[ Upstream commit 05f136220d17839eb7c155f015ace9152f603225 ]

As previously reported by Alexander, whose commit 69403bad97aa
("wifi: mac80211: sdata can be NULL during AMPDU start") I'm
reverting as part of this commit, there's a race between station
destruction and aggregation setup, where the aggregation setup
can happen while the station is being removed and queue the work
after ieee80211_sta_tear_down_BA_sessions() has already run in
__sta_info_destroy_part1(), and thus the worker will run with a
now freed station. In his case, this manifested in a NULL sdata
pointer, but really there's no guarantee whatsoever.

The real issue seems to be that it's possible at all to have a
situation where this occurs - we want to stop the BA sessions
when doing _part1, but we cannot be sure, and WLAN_STA_BLOCK_BA
isn't necessarily effective since we don't know that the setup
isn't concurrently running and already got past the check.

Simply call ieee80211_sta_tear_down_BA_sessions() again in the
second part of station destruction, since at that point really
nothing else can hold a reference to the station any more.

Also revert the sdata checks since those are just misleading at
this point.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-23 23:20:44 +01:00
..
aead_api.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
aead_api.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
aes_ccm.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
aes_cmac.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
aes_cmac.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
aes_gcm.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
aes_gmac.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
aes_gmac.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
agg-rx.c Backport mac80211 patches from linux-6.1.y 2024-06-15 16:29:20 -03:00
agg-tx.c wifi: mac80211: fix BA session teardown race 2024-11-23 23:20:44 +01:00
airtime.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cfg.c wifi: mac80211: check/clear fast rx for non-4addr sta VLAN changes 2024-11-19 09:22:41 +01:00
chan.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
debug.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
debugfs.c Backport mac80211 patches from linux-6.1.y 2024-06-15 16:29:20 -03:00
debugfs.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
debugfs_key.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
debugfs_key.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
debugfs_netdev.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
debugfs_netdev.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
debugfs_sta.c Backport mac80211 patches from linux-6.1.y 2024-06-15 16:29:20 -03:00
debugfs_sta.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
driver-ops.c wifi: mac80211: fix BA session teardown race 2024-11-23 23:20:44 +01:00
driver-ops.h Backport mac80211 patches from linux-6.1.y 2024-06-15 16:29:20 -03:00
ethtool.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
fils_aead.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
fils_aead.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
he.c wifi: mac80211: correctly parse Spatial Reuse Parameter Set element 2024-11-19 14:19:00 +01:00
ht.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ibss.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ieee80211_i.h wifi: mac80211: fix ieee80211_bss_*_flags kernel-doc 2024-11-19 11:32:43 +01:00
iface.c kcov: Remove kcov include from sched.h and move it to its users. 2024-11-19 11:32:46 +01:00
Kconfig Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
key.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
key.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
led.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
led.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
main.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mesh.c wifi: mac80211: mesh: init nonpeer_pm to active by default in mesh sdata 2024-11-19 14:19:47 +01:00
mesh.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mesh_hwmp.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mesh_pathtbl.c wifi: mac80211: mesh: Fix leak of mesh_preq_queue objects 2024-11-19 14:19:00 +01:00
mesh_plink.c wifi: mac80211: mesh_plink: fix matches_local logic 2024-11-18 12:11:58 +01:00
mesh_ps.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mesh_sync.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
michael.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
michael.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mlme.c Backport mac80211 patches from linux-6.1.y 2024-06-15 16:29:20 -03:00
ocb.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
offchannel.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
pm.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
rate.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
rate.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
rc80211_minstrel.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
rc80211_minstrel.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
rc80211_minstrel_debugfs.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
rc80211_minstrel_ht.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
rc80211_minstrel_ht.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
rc80211_minstrel_ht_debugfs.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
rx.c kcov: Remove kcov include from sched.h and move it to its users. 2024-11-19 11:32:46 +01:00
s1g.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
scan.c wifi: mac80211: fix UBSAN noise in ieee80211_prep_hw_scan() 2024-11-19 14:19:47 +01:00
spectmgmt.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
sta_info.c wifi: mac80211: fix BA session teardown race 2024-11-23 23:20:44 +01:00
sta_info.h Backport mac80211 patches from linux-6.1.y 2024-06-15 16:29:20 -03:00
status.c Backport mac80211 patches from linux-6.1.y 2024-06-15 16:29:20 -03:00
tdls.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
tkip.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
tkip.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
trace.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
trace.h Backport mac80211 patches from linux-6.1.y 2024-06-15 16:29:20 -03:00
trace_msg.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
tx.c wifi: mac80211: fix race condition on enabling fast-xmit 2024-11-18 22:25:32 +01:00
util.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
vht.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
wep.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
wep.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
wme.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
wme.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
wpa.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
wpa.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00