linux/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
..
aead_api.c mac80211: use crypto_aead_authsize() 2017-10-11 15:46:45 +02:00
aead_api.h mac80211: aead api to reduce redundancy 2017-10-11 09:37:35 +02:00
aes_ccm.h mac80211: aead api to reduce redundancy 2017-10-11 09:37:35 +02:00
aes_cmac.c
aes_cmac.h
aes_gcm.h mac80211: aead api to reduce redundancy 2017-10-11 09:37:35 +02:00
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 mac80211: validate user rate mask before configuring driver 2017-10-18 09:39:56 +02:00
chan.c
debug.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
debugfs_key.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
debugfs_netdev.c
debugfs_netdev.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
debugfs_sta.c
debugfs_sta.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
debugfs.c
debugfs.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
driver-ops.c
driver-ops.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ethtool.c
fils_aead.c
fils_aead.h
ht.c mac80211: Simplify locking in ieee80211_sta_tear_down_BA_sessions() 2017-09-21 11:42:01 +02:00
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 mac80211: only remove AP VLAN frames from TXQ 2017-10-11 09:49:40 +02:00
Kconfig
key.c mac80211: don't compare TKIP TX MIC key in reinstall prevention 2017-10-25 11:04:45 +02:00
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
Makefile Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-11-04 09:26:51 +09: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 net/mac80211/mesh_plink: Convert timers to use timer_setup() 2017-10-06 11:47:52 +02:00
mesh_ps.c
mesh_sync.c
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
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 mac80211: flush hw_roc_start work before cancelling the ROC 2017-09-05 16:25:07 +02:00
pm.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
rate.c
rate.h
rc80211_minstrel_debugfs.c
rc80211_minstrel_ht_debugfs.c
rc80211_minstrel_ht.c
rc80211_minstrel_ht.h
rc80211_minstrel.c
rc80211_minstrel.h
rx.c
scan.c mac80211: oce: enable receiving of bcast probe resp 2017-09-21 11:42:00 +02:00
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_msg.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01: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 License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
tx.c mac80211: only remove AP VLAN frames from TXQ 2017-10-11 09:49:40 +02:00
util.c mac80211: use offsetofend() 2017-09-21 11:42:01 +02:00
vht.c mac80211: fix bandwidth computation for TDLS peers 2017-10-02 14:06:19 +02:00
wep.c
wep.h
wme.c
wme.h
wpa.c mac80211: aead api to reduce redundancy 2017-10-11 09:37:35 +02:00
wpa.h