diff options
author | Johannes Berg <johannes.berg@intel.com> | 2013-12-04 22:46:11 +0100 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2013-12-16 11:29:45 +0100 |
commit | d34ba2168a3c10e7301cca06069c39865b4c3ec6 (patch) | |
tree | 709e9c81eba18202588852e39d66fcf893334451 /net/mac80211/cfg.c | |
parent | a710c8160dd93e981163759aad754f758850273a (diff) |
mac80211: don't delay station destruction
If we can assume that stations are never referenced by the
driver after sta_state returns (and this is true since the
previous iwlmvm patch and for all other drivers) then we
don't need to delay station destruction, and don't need to
play tricks with rcu_barrier() etc.
This should speed up some scenarios like hostapd shutdown.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/cfg.c')
-rw-r--r-- | net/mac80211/cfg.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c index 8b790e7b221e..e11bdb63167a 100644 --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c @@ -1098,15 +1098,11 @@ static int ieee80211_stop_ap(struct wiphy *wiphy, struct net_device *dev) kfree_rcu(old_probe_resp, rcu_head); list_for_each_entry(vlan, &sdata->u.ap.vlans, u.vlan.list) - sta_info_flush_defer(vlan); - sta_info_flush_defer(sdata); + sta_info_flush(vlan); + sta_info_flush(sdata); synchronize_net(); - rcu_barrier(); - list_for_each_entry(vlan, &sdata->u.ap.vlans, u.vlan.list) { - sta_info_flush_cleanup(vlan); + list_for_each_entry(vlan, &sdata->u.ap.vlans, u.vlan.list) ieee80211_free_keys(vlan); - } - sta_info_flush_cleanup(sdata); ieee80211_free_keys(sdata); sdata->vif.bss_conf.enable_beacon = false; |