mac80211: split sta_info_add
authorJohannes Berg <johannes@sipsolutions.net>
Mon, 25 Feb 2008 15:27:47 +0000 (16:27 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 6 Mar 2008 20:30:47 +0000 (15:30 -0500)
commit73651ee6396c499ccb59ebc84c9274db01ed026d
tree1d59027cbdaec732f3e1378770cbf7b42b48cd70
parentd0709a65181beb787ef3f58cfe45536a2bb254c8
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>
net/mac80211/cfg.c
net/mac80211/ieee80211.c
net/mac80211/ieee80211_sta.c
net/mac80211/mesh.h
net/mac80211/mesh_plink.c
net/mac80211/sta_info.c
net/mac80211/sta_info.h