mac80211: fix spinlock recursion
[linux-2.6-block.git] / net / mac80211 / ieee80211_i.h
index c642538e8282c88c5676d56e8c83a7b515bca5b1..ce566f3e0169a9e62f2b458c698753a543a25626 100644 (file)
@@ -600,8 +600,7 @@ struct ieee80211_local {
        /*
         * The lock only protects the list, hash, timer and counter
         * against manipulation, reads are done in RCU. Additionally,
-        * the lock protects each BSS's TIM bitmap, a few items in
-        * STA info structures and various key pointers.
+        * the lock protects each BSS's TIM bitmap.
         */
        spinlock_t sta_lock;
        unsigned long num_sta;
@@ -635,6 +634,13 @@ struct ieee80211_local {
 
        struct list_head interfaces;
 
+       /*
+        * Key lock, protects sdata's key_list and sta_info's
+        * key pointers (write access, they're RCU.)
+        */
+       spinlock_t key_lock;
+
+
        bool sta_sw_scanning;
        bool sta_hw_scanning;
        int scan_channel_idx;