wifi: mac80211: remove unnecessary synchronize_net()
authorJohannes Berg <johannes.berg@intel.com>
Wed, 2 Nov 2022 08:47:47 +0000 (09:47 +0100)
committerJohannes Berg <johannes.berg@intel.com>
Thu, 1 Dec 2022 14:09:10 +0000 (15:09 +0100)
The call to ieee80211_do_stop() right after will also do
synchronize_rcu() to ensure the SDATA_STATE_RUNNING bit
is cleared, so we don't need to synchronize_net() here.

Change-Id: Id9f9ffcf195002013e5d9fde288877d219780864
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/iface.c

index a5782927a93b03fb470591a4c9e20479a5e0953d..7b2843df38137f1095dd661afebf20c5c08a8ae9 100644 (file)
@@ -1849,8 +1849,7 @@ static int ieee80211_runtime_change_iftype(struct ieee80211_sub_if_data *sdata,
 
        ieee80211_stop_vif_queues(local, sdata,
                                  IEEE80211_QUEUE_STOP_REASON_IFTYPE_CHANGE);
-       synchronize_net();
-
+       /* do_stop will synchronize_rcu() first thing */
        ieee80211_do_stop(sdata, false);
 
        ieee80211_teardown_sdata(sdata);