kernel_optimize_test/net/mac80211
Johannes Berg db4d1169d0 mac80211: split ieee80211_key_alloc/free
In order to RCU-ify sta_info, we need to be able to allocate
a key without linking it to an sdata/sta structure (because
allocation cannot be done in an rcu critical section). This
patch splits up ieee80211_key_alloc() and updates all users
appropriately.

While at it, this patch fixes a number of race conditions
such as finally making key replacement atomic, unfortunately
at the expense of more complex code.

Note that this patch documents /existing/ bugs with sta info
and key interaction, there is currently a race condition
when a sta info is freed without holding the RTNL. This will
finally be fixed by a followup patch.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2008-02-29 15:42:04 -05:00
..
aes_ccm.c
aes_ccm.h
cfg.c mac80211: split ieee80211_key_alloc/free 2008-02-29 15:42:04 -05:00
cfg.h
debugfs_key.c
debugfs_key.h
debugfs_netdev.c
debugfs_netdev.h
debugfs_sta.c mac80211: remove STA infos last_ack stuff 2008-02-29 15:42:02 -05:00
debugfs_sta.h
debugfs.c
debugfs.h
event.c
ieee80211_i.h
ieee80211_iface.c mac80211: safely free beacon in ieee80211_if_reinit 2008-02-29 15:42:00 -05:00
ieee80211_ioctl.c mac80211: split ieee80211_key_alloc/free 2008-02-29 15:42:04 -05:00
ieee80211_key.h mac80211: split ieee80211_key_alloc/free 2008-02-29 15:42:04 -05:00
ieee80211_led.c
ieee80211_led.h
ieee80211_rate.c
ieee80211_rate.h
ieee80211_sta.c
ieee80211.c
Kconfig
key.c mac80211: split ieee80211_key_alloc/free 2008-02-29 15:42:04 -05:00
Makefile
michael.c
michael.h
rc80211_pid_algo.c mac80211: remove STA infos last_ack stuff 2008-02-29 15:42:02 -05:00
rc80211_pid_debugfs.c
rc80211_pid.h
rc80211_simple.c mac80211: remove STA infos last_ack stuff 2008-02-29 15:42:02 -05:00
rx.c
sta_info.c mac80211: split ieee80211_key_alloc/free 2008-02-29 15:42:04 -05:00
sta_info.h mac80211: remove STA infos last_ack stuff 2008-02-29 15:42:02 -05:00
tkip.c
tkip.h
tx.c
util.c
wep.c
wep.h
wme.c
wme.h
wpa.c
wpa.h