WSL2-Linux-Kernel/net/mac80211
Johannes Berg 33ddd81e2b mac80211: properly free requested-but-not-started TX agg sessions
When deleting a station or otherwise tearing down all aggregation
sessions, make sure to delete requested but not yet started ones,
to avoid the following scenario:

 * session is requested, added to tid_start_tx[]
 * ieee80211_ba_session_work() runs, gets past BLOCK_BA check
 * ieee80211_sta_tear_down_BA_sessions() runs, locks &sta->ampdu_mlme.mtx,
   e.g. while deleting the station - deleting all active sessions
 * ieee80211_ba_session_work() continues since tear down flushes it, and
   calls ieee80211_tx_ba_session_handle_start() for the new session, arms
   the timer for it
 * station deletion continues to __cleanup_single_sta() and frees the
   session struct, while the timer is armed

Reported-by: Fengguang Wu <fengguang.wu@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2017-11-20 17:01:31 +01:00
..
Kconfig
Makefile Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-11-04 09:26:51 +09:00
aead_api.c
aead_api.h
aes_ccm.h
aes_cmac.c
aes_cmac.h
aes_gcm.h
aes_gmac.c
aes_gmac.h
agg-rx.c mac80211: aggregation: Convert timers to use timer_setup() 2017-11-20 16:55:23 +01:00
agg-tx.c mac80211: properly free requested-but-not-started TX agg sessions 2017-11-20 17:01:31 +01:00
cfg.c
chan.c
debug.h
debugfs.c
debugfs.h
debugfs_key.c
debugfs_key.h
debugfs_netdev.c
debugfs_netdev.h
debugfs_sta.c
debugfs_sta.h
driver-ops.c
driver-ops.h
ethtool.c
fils_aead.c
fils_aead.h
ht.c
ibss.c mac80211: Convert timers to use timer_setup() 2017-11-20 16:55:11 +01:00
ieee80211_i.h mac80211: Convert timers to use timer_setup() 2017-11-20 16:55:11 +01:00
iface.c
key.c
key.h
led.c mac80211: Convert timers to use timer_setup() 2017-11-20 16:55:11 +01:00
led.h
main.c mac80211: Convert timers to use timer_setup() 2017-11-20 16:55:11 +01:00
mesh.c mac80211: Convert timers to use timer_setup() 2017-11-20 16:55:11 +01:00
mesh.h mac80211: Convert timers to use timer_setup() 2017-11-20 16:55:11 +01:00
mesh_hwmp.c mac80211: Convert timers to use timer_setup() 2017-11-20 16:55:11 +01:00
mesh_pathtbl.c mac80211: Convert timers to use timer_setup() 2017-11-20 16:55:11 +01:00
mesh_plink.c
mesh_ps.c
mesh_sync.c
michael.c
michael.h
mlme.c mac80211: Convert timers to use timer_setup() 2017-11-20 16:55:11 +01:00
ocb.c mac80211: Convert timers to use timer_setup() 2017-11-20 16:55:11 +01:00
offchannel.c
pm.c
rate.c
rate.h
rc80211_minstrel.c
rc80211_minstrel.h
rc80211_minstrel_debugfs.c
rc80211_minstrel_ht.c
rc80211_minstrel_ht.h
rc80211_minstrel_ht_debugfs.c
rx.c
scan.c
spectmgmt.c
sta_info.c mac80211: aggregation: Convert timers to use timer_setup() 2017-11-20 16:55:23 +01:00
sta_info.h mac80211: aggregation: Convert timers to use timer_setup() 2017-11-20 16:55:23 +01:00
status.c
tdls.c
tkip.c
tkip.h
trace.c
trace.h
trace_msg.h
tx.c
util.c
vht.c
wep.c
wep.h
wme.c
wme.h
wpa.c
wpa.h