summaryrefslogtreecommitdiffstats
path: root/net/mac80211/sta_info.h
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2013-12-04 23:12:31 +0100
committerJohannes Berg <johannes.berg@intel.com>2013-12-16 11:29:47 +0100
commitd778207b06ac1becd012eb689dafdf85feebb179 (patch)
treea6b248949b392e66908cc98aedb2b5b9defc96a1 /net/mac80211/sta_info.h
parentmac80211: move synchronize_net() before sta key removal (diff)
downloadlinux-d778207b06ac1becd012eb689dafdf85feebb179.tar.xz
linux-d778207b06ac1becd012eb689dafdf85feebb179.zip
mac80211: optimise synchronize_net() for sta_info_flush
There's no reason to have one synchronize_net() for each removed station, refactor the code slightly to have just a single synchronize_net() for all stations. Note that this is currently useless as hostapd removes stations one by one and this coalescing never happens. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/sta_info.h')
-rw-r--r--net/mac80211/sta_info.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/mac80211/sta_info.h b/net/mac80211/sta_info.h
index 9104f812e9de..f6081e574a28 100644
--- a/net/mac80211/sta_info.h
+++ b/net/mac80211/sta_info.h
@@ -247,6 +247,7 @@ struct ieee80211_tx_latency_stat {
* mac80211 is communicating with.
*
* @list: global linked list entry
+ * @free_list: list entry for keeping track of stations to free
* @hnext: hash table linked list pointer
* @local: pointer to the global information
* @sdata: virtual interface this station belongs to
@@ -329,7 +330,7 @@ struct ieee80211_tx_latency_stat {
*/
struct sta_info {
/* General information, mostly static */
- struct list_head list;
+ struct list_head list, free_list;
struct rcu_head rcu_head;
struct sta_info __rcu *hnext;
struct ieee80211_local *local;