]> Pileus Git - ~andy/linux/blobdiff - net/mac80211/debugfs_key.c
Merge branch 'nfs-for-2.6.38' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6
[~andy/linux] / net / mac80211 / debugfs_key.c
index 5822a6ce76714cc85cd653f860508ceff29786c0..f7ef3477c24a13d5eea1cd587266fddaff68da6d 100644 (file)
@@ -274,7 +274,8 @@ void ieee80211_debugfs_key_remove(struct ieee80211_key *key)
        debugfs_remove_recursive(key->debugfs.dir);
        key->debugfs.dir = NULL;
 }
-void ieee80211_debugfs_key_add_default(struct ieee80211_sub_if_data *sdata)
+
+void ieee80211_debugfs_key_update_default(struct ieee80211_sub_if_data *sdata)
 {
        char buf[50];
        struct ieee80211_key *key;
@@ -282,25 +283,29 @@ void ieee80211_debugfs_key_add_default(struct ieee80211_sub_if_data *sdata)
        if (!sdata->debugfs.dir)
                return;
 
-       /* this is running under the key lock */
+       lockdep_assert_held(&sdata->local->key_mtx);
 
-       key = sdata->default_key;
-       if (key) {
+       if (sdata->default_unicast_key) {
+               key = sdata->default_unicast_key;
                sprintf(buf, "../keys/%d", key->debugfs.cnt);
-               sdata->debugfs.default_key =
-                       debugfs_create_symlink("default_key",
+               sdata->debugfs.default_unicast_key =
+                       debugfs_create_symlink("default_unicast_key",
                                               sdata->debugfs.dir, buf);
-       } else
-               ieee80211_debugfs_key_remove_default(sdata);
-}
-
-void ieee80211_debugfs_key_remove_default(struct ieee80211_sub_if_data *sdata)
-{
-       if (!sdata)
-               return;
+       } else {
+               debugfs_remove(sdata->debugfs.default_unicast_key);
+               sdata->debugfs.default_unicast_key = NULL;
+       }
 
-       debugfs_remove(sdata->debugfs.default_key);
-       sdata->debugfs.default_key = NULL;
+       if (sdata->default_multicast_key) {
+               key = sdata->default_multicast_key;
+               sprintf(buf, "../keys/%d", key->debugfs.cnt);
+               sdata->debugfs.default_multicast_key =
+                       debugfs_create_symlink("default_multicast_key",
+                                              sdata->debugfs.dir, buf);
+       } else {
+               debugfs_remove(sdata->debugfs.default_multicast_key);
+               sdata->debugfs.default_multicast_key = NULL;
+       }
 }
 
 void ieee80211_debugfs_key_add_mgmt_default(struct ieee80211_sub_if_data *sdata)