aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/ieee80211_iface.c
diff options
context:
space:
mode:
authorMichael Wu <flamingice@sourmilk.net>2007-07-27 09:43:23 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2007-10-10 19:47:37 -0400
commitbe8755e1804d6f60e6a96a46ac6bc46ce6dfca53 (patch)
treea3038a924114f49aa2372ab7c9417d4e072c4b20 /net/mac80211/ieee80211_iface.c
parentc2d1560ad8c2f6e0dd0d34102d022f3709325c26 (diff)
[MAC80211]: improve locking of sta_info related structures
The sta_info code has some awkward locking which prevents some driver callbacks from being allowed to sleep. This patch makes the locking more focused so code that calls driver callbacks are allowed to sleep. It also converts sta_lock to a rwlock. Signed-off-by: Michael Wu <flamingice@sourmilk.net> Signed-off-by: Jiri Benc <jbenc@suse.cz> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/ieee80211_iface.c')
-rw-r--r--net/mac80211/ieee80211_iface.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/mac80211/ieee80211_iface.c b/net/mac80211/ieee80211_iface.c
index 8532a5ccdd1e..6db67767801d 100644
--- a/net/mac80211/ieee80211_iface.c
+++ b/net/mac80211/ieee80211_iface.c
@@ -272,8 +272,8 @@ void ieee80211_if_reinit(struct net_device *dev)
272 case IEEE80211_IF_TYPE_WDS: 272 case IEEE80211_IF_TYPE_WDS:
273 sta = sta_info_get(local, sdata->u.wds.remote_addr); 273 sta = sta_info_get(local, sdata->u.wds.remote_addr);
274 if (sta) { 274 if (sta) {
275 sta_info_free(sta);
275 sta_info_put(sta); 276 sta_info_put(sta);
276 sta_info_free(sta, 0);
277 } else { 277 } else {
278#ifdef CONFIG_MAC80211_VERBOSE_DEBUG 278#ifdef CONFIG_MAC80211_VERBOSE_DEBUG
279 printk(KERN_DEBUG "%s: Someone had deleted my STA " 279 printk(KERN_DEBUG "%s: Someone had deleted my STA "