1
0
Fork 0
alistair23-linux/net/mac80211
Johannes Berg ec034b208d mac80211: fix TX a-MPDU locking
During my quest to make mac80211 not have any RCU
warnings from sparse, I came across the a-MPDU code
again and it wasn't quite clear why it isn't racy.
So instead of assigning the tid_tx array with just
the spinlock held in ieee80211_start_tx_ba_session
use a separate temporary array protected only by
the spinlock and protect all assignments to the
"live" array by both the spinlock and the mutex so
that other code is easily verified to be correct.

Due to pointer assignment atomicity I don't think
this is a real issue, but I'm not sure, especially
on Alpha the current code might be problematic.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2011-05-16 14:10:40 -04:00
..
Kconfig mac80211: remove the dependency on crypto_blkcipher 2011-04-04 16:20:00 -04:00
Makefile mac80211: add the minstrel_ht rate control algorithm 2010-06-02 16:12:59 -04:00
aes_ccm.c mac80211: Fix warnings due to -Wunused-but-set-variable 2011-04-26 15:50:31 -04:00
aes_ccm.h
aes_cmac.c mac80211: Remove redundant checks for NULL before calls to crypto_free_cipher() 2010-11-15 13:26:11 -05:00
aes_cmac.h
agg-rx.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2011-01-28 16:23:14 -05:00
agg-tx.c mac80211: fix TX a-MPDU locking 2011-05-16 14:10:40 -04:00
cfg.c cfg80211/mac80211: avoid bounce back mac->cfg->mac on sched_scan_stopped 2011-05-12 14:10:55 -04:00
cfg.h
chan.c mac80211: fix channel type recalculation with HT and non-HT interfaces 2011-03-14 14:46:58 -04:00
debugfs.c mac80211: add basic support for WoWLAN 2011-05-05 14:59:20 -04:00
debugfs.h mac80211: refactor debugfs function generation code 2010-11-15 13:24:48 -05:00
debugfs_key.c mac80211: support separate default keys 2010-12-13 15:23:29 -05:00
debugfs_key.h mac80211: support separate default keys 2010-12-13 15:23:29 -05:00
debugfs_netdev.c mac80211: fix SMPS debugfs locking 2011-04-20 16:05:59 -04:00
debugfs_netdev.h mac80211: reduce reliance on netdev 2009-12-21 18:38:52 -05:00
debugfs_sta.c mac80211: fix debugfs printk format warning 2011-04-19 15:38:03 -04:00
debugfs_sta.h
driver-ops.h mac80211: add support for HW scheduled scan 2011-05-11 15:12:27 -04:00
driver-trace.c
driver-trace.h mac80211: add support for HW scheduled scan 2011-05-11 15:12:27 -04:00
event.c
ht.c mac80211: fix TX a-MPDU locking 2011-05-16 14:10:40 -04:00
ibss.c mac80211: Fix warnings due to -Wunused-but-set-variable 2011-04-26 15:50:31 -04:00
ieee80211_i.h cfg80211/mac80211: avoid bounce back mac->cfg->mac on sched_scan_stopped 2011-05-12 14:10:55 -04:00
iface.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2011-03-03 21:27:42 -08:00
key.c mac80211: make key locking clearer 2011-05-12 14:10:53 -04:00
key.h mac80211: make key locking clearer 2011-05-12 14:10:53 -04:00
led.c mac80211: remove stray extern 2011-01-05 16:07:12 -05:00
led.h mac80211: selective throughput LED trigger active 2010-12-22 14:33:37 -05:00
main.c cfg80211: advertise possible interface combinations 2011-05-16 14:10:40 -04:00
mesh.c mac80211: mesh: move some code to make it static 2011-05-12 14:10:55 -04:00
mesh.h mac80211: mesh: move some code to make it static 2011-05-12 14:10:55 -04:00
mesh_hwmp.c mac80211: remove pointless mesh path timer RCU code 2011-05-12 14:10:52 -04:00
mesh_pathtbl.c mac80211: mesh: move some code to make it static 2011-05-12 14:10:55 -04:00
mesh_plink.c open80211s: Stop using zero for address 3 in mesh plink mgmt frames 2011-05-11 14:37:48 -04:00
michael.c
michael.h
mlme.c mac80211: Postpond ps timer if tx is stopped by others 2011-05-05 14:59:07 -04:00
offchannel.c mac80211: Optimize scans on current operating channel. 2011-02-04 16:30:32 -05:00
pm.c mac80211: add basic support for WoWLAN 2011-05-05 14:59:20 -04:00
rate.c cfg80211/mac80211: improve ad-hoc multicast rate handling 2010-11-24 16:19:35 -05:00
rate.h mac80211: add the minstrel_ht rate control algorithm 2010-06-02 16:12:59 -04:00
rc80211_minstrel.c mac80211: fix contention time computation in minstrel, minstrel_ht 2011-05-12 14:10:48 -04:00
rc80211_minstrel.h minstrel: make the rate control ops reusable from another rc implementation 2010-03-10 17:44:23 -05:00
rc80211_minstrel_debugfs.c llseek: automatically add .llseek fop 2010-10-15 15:53:27 +02:00
rc80211_minstrel_ht.c mac80211: fix contention time computation in minstrel, minstrel_ht 2011-05-12 14:10:48 -04:00
rc80211_minstrel_ht.h minstrel_ht: move minstrel_mcs_groups declaration to header file 2010-06-24 15:42:18 -04:00
rc80211_minstrel_ht_debugfs.c mac80211: disallow seeks in minstrel debug code 2010-09-16 10:33:17 +02:00
rc80211_pid.h mac80211: remove unused macros 2011-03-07 13:48:30 -05:00
rc80211_pid_algo.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
rc80211_pid_debugfs.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2010-10-23 11:47:02 -07:00
rx.c mac80211: add support for HW scheduled scan 2011-05-11 15:12:27 -04:00
scan.c cfg80211/mac80211: avoid bounce back mac->cfg->mac on sched_scan_stopped 2011-05-12 14:10:55 -04:00
spectmgmt.c mac80211: reduce reliance on netdev 2009-12-21 18:38:52 -05:00
sta_info.c mac80211: fix another key non-race 2011-05-12 14:10:54 -04:00
sta_info.h mac80211: fix TX a-MPDU locking 2011-05-16 14:10:40 -04:00
status.c mac80211: allow low level drivers to report packet loss 2011-04-28 14:50:00 -04:00
tkip.c mac80211: remove the dependency on crypto_blkcipher 2011-04-04 16:20:00 -04:00
tkip.h mac80211: remove the dependency on crypto_blkcipher 2011-04-04 16:20:00 -04:00
tx.c mac80211: Move call to mpp_path_lookup inside RCU-read section 2011-05-11 14:50:35 -04:00
util.c mac80211: add basic support for WoWLAN 2011-05-05 14:59:20 -04:00
wep.c mac80211: remove the dependency on crypto_blkcipher 2011-04-04 16:20:00 -04:00
wep.h mac80211: remove the dependency on crypto_blkcipher 2011-04-04 16:20:00 -04:00
wme.c mac80211: cleanup select_queue 2010-12-22 15:44:22 -05:00
wme.h mac80211: fix skb buffering issue 2010-01-05 16:21:40 -05:00
work.c mac80211: Fix warnings due to -Wunused-but-set-variable 2011-04-26 15:50:31 -04:00
wpa.c mac80211: consolidate MIC failure report handling 2011-05-02 14:49:14 -04:00
wpa.h