diff options
author | Johannes Berg <johannes.berg@intel.com> | 2013-12-04 17:12:31 -0500 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2013-12-16 05:29:47 -0500 |
commit | d778207b06ac1becd012eb689dafdf85feebb179 (patch) | |
tree | a6b248949b392e66908cc98aedb2b5b9defc96a1 /net/mac80211/sta_info.h | |
parent | c87820784454bbf7fc63a9e7d9c36762a46f393c (diff) |
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.h | 3 |
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 { | |||
247 | * mac80211 is communicating with. | 247 | * mac80211 is communicating with. |
248 | * | 248 | * |
249 | * @list: global linked list entry | 249 | * @list: global linked list entry |
250 | * @free_list: list entry for keeping track of stations to free | ||
250 | * @hnext: hash table linked list pointer | 251 | * @hnext: hash table linked list pointer |
251 | * @local: pointer to the global information | 252 | * @local: pointer to the global information |
252 | * @sdata: virtual interface this station belongs to | 253 | * @sdata: virtual interface this station belongs to |
@@ -329,7 +330,7 @@ struct ieee80211_tx_latency_stat { | |||
329 | */ | 330 | */ |
330 | struct sta_info { | 331 | struct sta_info { |
331 | /* General information, mostly static */ | 332 | /* General information, mostly static */ |
332 | struct list_head list; | 333 | struct list_head list, free_list; |
333 | struct rcu_head rcu_head; | 334 | struct rcu_head rcu_head; |
334 | struct sta_info __rcu *hnext; | 335 | struct sta_info __rcu *hnext; |
335 | struct ieee80211_local *local; | 336 | struct ieee80211_local *local; |