linux/net/mac80211
Johannes Berg 73651ee639 mac80211: split sta_info_add
sta_info_add() has two functions: allocating a station info
structure and inserting it into the hash table/list. Splitting
these two functions allows allocating with GFP_KERNEL in many
places instead of GFP_ATOMIC which is now required by the RCU
protection. Additionally, in many places RCU protection is now
no longer needed at all because between sta_info_alloc() and
sta_info_insert() the caller owns the structure.

This fixes a few race conditions with setting initial flags
and similar, but not all (see comments in ieee80211_sta.c and
cfg.c). More documentation on the existing races will be in
a follow-up patch.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2008-03-06 15:30:47 -05:00
..
Kconfig mac80211: clarify mesh Kconfig 2008-03-06 15:30:44 -05:00
Makefile mac80211: enable mesh in Kconfig 2008-03-06 15:30:43 -05:00
aes_ccm.c
aes_ccm.h
cfg.c mac80211: split sta_info_add 2008-03-06 15:30:47 -05:00
cfg.h
debugfs.c cfg80211 API for channels/bitrates, mac80211 and driver conversion 2008-02-29 15:19:32 -05:00
debugfs.h
debugfs_key.c
debugfs_key.h
debugfs_netdev.c mac80211: mesh statistics and config through debugfs 2008-03-06 15:30:42 -05:00
debugfs_netdev.h
debugfs_sta.c mac80211: RCU-ify STA info structure access 2008-03-06 15:30:46 -05:00
debugfs_sta.h mac80211: RCU-ify STA info structure access 2008-03-06 15:30:46 -05:00
event.c
ieee80211.c mac80211: split sta_info_add 2008-03-06 15:30:47 -05:00
ieee80211_i.h mac80211: RCU-ify STA info structure access 2008-03-06 15:30:46 -05:00
ieee80211_iface.c mac80211: RCU-ify STA info structure access 2008-03-06 15:30:46 -05:00
ieee80211_ioctl.c mac80211: RCU-ify STA info structure access 2008-03-06 15:30:46 -05:00
ieee80211_key.h mac80211: split ieee80211_key_alloc/free 2008-02-29 15:42:04 -05:00
ieee80211_led.c mac80211: Add radio led trigger 2008-01-28 15:01:04 -08:00
ieee80211_led.h mac80211: Add radio led trigger 2008-01-28 15:01:04 -08:00
ieee80211_rate.c mac80211: RCU-ify STA info structure access 2008-03-06 15:30:46 -05:00
ieee80211_rate.h mac80211: RCU-ify STA info structure access 2008-03-06 15:30:46 -05:00
ieee80211_sta.c mac80211: split sta_info_add 2008-03-06 15:30:47 -05:00
key.c mac80211: RCU-ify STA info structure access 2008-03-06 15:30:46 -05:00
mesh.c mac80211: RCU-ify STA info structure access 2008-03-06 15:30:46 -05:00
mesh.h mac80211: split sta_info_add 2008-03-06 15:30:47 -05:00
mesh_hwmp.c mac80211: RCU-ify STA info structure access 2008-03-06 15:30:46 -05:00
mesh_pathtbl.c mac80211: RCU-ify STA info structure access 2008-03-06 15:30:46 -05:00
mesh_plink.c mac80211: split sta_info_add 2008-03-06 15:30:47 -05:00
michael.c
michael.h
rc80211_pid.h rc80211-pid: fix definition of rate control interval 2008-01-28 15:00:55 -08:00
rc80211_pid_algo.c mac80211: RCU-ify STA info structure access 2008-03-06 15:30:46 -05:00
rc80211_pid_debugfs.c mac80211: make rc_pid_fop_events static 2008-01-28 15:00:56 -08:00
rc80211_simple.c mac80211: RCU-ify STA info structure access 2008-03-06 15:30:46 -05:00
rx.c mac80211: RCU-ify STA info structure access 2008-03-06 15:30:46 -05:00
sta_info.c mac80211: split sta_info_add 2008-03-06 15:30:47 -05:00
sta_info.h mac80211: split sta_info_add 2008-03-06 15:30:47 -05:00
tkip.c
tkip.h
tx.c mac80211: RCU-ify STA info structure access 2008-03-06 15:30:46 -05:00
util.c mac80211: split ieee80211_txrx_data 2008-03-06 15:30:46 -05:00
wep.c mac80211: split ieee80211_txrx_data 2008-03-06 15:30:46 -05:00
wep.h mac80211: split ieee80211_txrx_data 2008-03-06 15:30:46 -05:00
wme.c mac80211: RCU-ify STA info structure access 2008-03-06 15:30:46 -05:00
wme.h mac80211: A-MPDU Tx adding qdisc support 2008-02-29 15:19:17 -05:00
wpa.c mac80211: split ieee80211_txrx_data 2008-03-06 15:30:46 -05:00
wpa.h mac80211: split ieee80211_txrx_data 2008-03-06 15:30:46 -05:00