summaryrefslogtreecommitdiffstats
path: root/net/mac80211/key.h
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2013-03-06 23:09:11 +0100
committerJohannes Berg <johannes.berg@intel.com>2013-03-11 15:16:42 +0200
commit6d10e46be5ac1d0ae787babd3dafd52b30686db5 (patch)
tree5377578eb94c2329d944ebf6ec657e8df5006e02 /net/mac80211/key.h
parent3b8d9c290364c86fc9f4baff7c82264a96f706d6 (diff)
downloadlinux-6d10e46be5ac1d0ae787babd3dafd52b30686db5.tar.gz
linux-6d10e46be5ac1d0ae787babd3dafd52b30686db5.tar.bz2
linux-6d10e46be5ac1d0ae787babd3dafd52b30686db5.zip
mac80211: batch key free synchronize_net()
Instead of calling synchronize_net() for every key on an interface or when a station is removed, do it only once for all keys in both of these cases. As a side-effect, removing station keys now always calls synchronize_net() even if there are no keys, which fixes an issue with station removal happening in the driver while the station could still be used for TX. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/key.h')
-rw-r--r--net/mac80211/key.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/mac80211/key.h b/net/mac80211/key.h
index a353ddd63b5b..e8de3e6d7804 100644
--- a/net/mac80211/key.h
+++ b/net/mac80211/key.h
@@ -141,6 +141,8 @@ void ieee80211_set_default_key(struct ieee80211_sub_if_data *sdata, int idx,
void ieee80211_set_default_mgmt_key(struct ieee80211_sub_if_data *sdata,
int idx);
void ieee80211_free_keys(struct ieee80211_sub_if_data *sdata);
+void ieee80211_free_sta_keys(struct ieee80211_local *local,
+ struct sta_info *sta);
void ieee80211_enable_keys(struct ieee80211_sub_if_data *sdata);
#define key_mtx_dereference(local, ref) \