aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/main.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2008-04-11 21:40:35 +0200
committerJohn W. Linville <linville@tuxdriver.com>2008-04-16 15:59:57 -0400
commitb16bd15c379410f2aa47837aa4a0de5712856ad5 (patch)
treefd391bb12b146aaf001ae169a4c98f7088299edd /net/mac80211/main.c
parent6b914c521687ae6cb8923c7235fd69b7bc027703 (diff)
downloadkernel_samsung_crespo-b16bd15c379410f2aa47837aa4a0de5712856ad5.zip
kernel_samsung_crespo-b16bd15c379410f2aa47837aa4a0de5712856ad5.tar.gz
kernel_samsung_crespo-b16bd15c379410f2aa47837aa4a0de5712856ad5.tar.bz2
mac80211: fix spinlock recursion
When STAs are expired, we need to hold the sta_lock. Using the same lock for keys too would then mean we'd need another key free function, and that'll just lead to confusion, so just use a new spinlock for all key lists. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/main.c')
-rw-r--r--net/mac80211/main.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/mac80211/main.c b/net/mac80211/main.c
index bfcbcf5..e9a9789 100644
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
@@ -1587,6 +1587,8 @@ struct ieee80211_hw *ieee80211_alloc_hw(size_t priv_data_len,
INIT_LIST_HEAD(&local->interfaces);
+ spin_lock_init(&local->key_lock);
+
INIT_DELAYED_WORK(&local->scan_work, ieee80211_sta_scan_work);
sta_info_init(local);