linux/net/mac80211
Alexander Wetzel 39c1134c66 mac80211: fix TX aggregation stop race
The mac80211 tear down code is not waiting for the driver call back.
This can bring down the the TX path (TID) till the user manually
reconnects. (Observed with iwldvm and enabled TX aggregation.)

The race can be prevented when the ampdu_mlme worker handles the tear
down.

The race:
 * ieee80211_sta_tear_down_BA_sessions calls
   ___ieee80211_stop_tx_ba_session for all TIDs,

 * then cancels the ampdu_mlme worker

 * and cleanups the TIDs the driver already has called back for.

 * ieee80211_stop_tx_ba_cb will never be called for a TID if the callback
   came after the the check in ieee80211_sta_tear_down_BA_sessions.

Signed-off-by: Alexander Wetzel <Alexander.Wetzel@web.de>
[johannes: "enabled" -> "blocked" and invert logic, simplify init]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2018-05-18 11:14:36 +02: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: agg-rx: Accept ADDBA request update if timeout did not change 2018-02-27 11:06:04 +01:00
agg-tx.c Revert "mac80211: Add TXQ scheduling API" 2017-12-19 10:12:48 +01:00
cfg.c mac80211: Support the new cfg80211 TXQ stats API 2018-05-08 13:25:22 +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 mac80211: Add txq flags to debugfs 2018-01-31 12:57:24 +01:00
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 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-03-23 11:31:58 -04: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
driver-ops.c
driver-ops.h mac80211: Fix setting TX power on monitor interfaces 2018-01-04 15:27:48 +01:00
ethtool.c cfg80211/mac80211: revert to stack allocation for sinfo 2018-05-18 11:14:35 +02:00
fils_aead.c
fils_aead.h
ht.c mac80211: fix TX aggregation stop race 2018-05-18 11:14:36 +02:00
ibss.c mac80211: Send control port frames over nl80211 2018-03-29 14:08:30 +02:00
ieee80211_i.h mac80211: Support the new cfg80211 TXQ stats API 2018-05-08 13:25:22 +02:00
iface.c mac80211: Send control port frames over nl80211 2018-03-29 14:08:30 +02:00
Kconfig
key.c mac80211: allow AP_VLAN operation on crypto controlled devices 2018-03-29 11:35:22 +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: Support the new cfg80211 TXQ stats API 2018-05-08 13:25:22 +02: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: mark expected switch fall-throughs 2017-12-11 12:16:04 +01:00
mesh_pathtbl.c rhashtable: Change rhashtable_walk_start to return void 2017-12-11 09:58:38 -05:00
mesh_plink.c mac80211: mark expected switch fall-throughs 2017-12-11 12:16:04 +01:00
mesh_ps.c
mesh_sync.c
mesh.c mac80211: notify driver for change in multicast rates 2018-03-23 13:23:17 +01:00
mesh.h mac80211: Convert timers to use timer_setup() 2017-11-20 16:55:11 +01:00
michael.c mac80211: add get TID helper 2018-02-22 21:13:03 +01:00
michael.h
mlme.c We have a fair number of patches, but many of them are from the 2018-03-29 16:23:26 -04:00
ocb.c mac80211: Convert timers to use timer_setup() 2017-11-20 16:55:11 +01:00
offchannel.c mac80211: mark expected switch fall-throughs 2017-12-11 12:16:04 +01: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 net: Use octal not symbolic permissions 2018-03-26 12:07:48 -04:00
rc80211_minstrel_ht_debugfs.c net: Use octal not symbolic permissions 2018-03-26 12:07:48 -04:00
rc80211_minstrel_ht.c mac80211: add get TID helper 2018-02-22 21:13:03 +01:00
rc80211_minstrel_ht.h
rc80211_minstrel.c net: Use octal not symbolic permissions 2018-03-26 12:07:48 -04:00
rc80211_minstrel.h
rx.c mac80211: rename rtap_vendor_space to rtap_space 2018-05-07 20:49:44 +02:00
scan.c mac80211: inform wireless layer when frame RSSI is invalid 2018-03-21 11:27:11 +01:00
spectmgmt.c mac80211: Do not disconnect on invalid operating class 2018-02-19 14:53:14 +01:00
sta_info.c cfg80211: dynamically allocate per-tid stats for station info 2018-05-18 11:14:34 +02:00
sta_info.h mac80211: average ack rssi support for data frames 2018-05-07 21:41:16 +02:00
status.c mac80211: average ack rssi support for data frames 2018-05-07 21:41:16 +02:00
tdls.c mac80211: enable TDLS peer buffer STA feature 2017-12-11 12:16:05 +01:00
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 Revert "mac80211: Add TXQ scheduling API" 2017-12-19 10:12:48 +01:00
tx.c mac80211: Support the new cfg80211 TXQ stats API 2018-05-08 13:25:22 +02:00
util.c mac80211: clean up rate info bandwidth setting 2018-05-07 20:49:52 +02:00
vht.c mac80211: Use proper chan_width enum in sta opmode event 2018-03-29 10:19:59 +02:00
wep.c
wep.h
wme.c mac80211: mark expected switch fall-throughs 2017-12-11 12:16:04 +01:00
wme.h
wpa.c mac80211: add get TID helper 2018-02-22 21:13:03 +01:00
wpa.h