wifi: mac80211: consistently use sdata_dereference()
authorJohannes Berg <johannes.berg@intel.com>
Fri, 17 Jun 2022 13:16:36 +0000 (15:16 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Fri, 15 Jul 2022 09:43:12 +0000 (11:43 +0200)
Instead of open-coding it, use sdata_dereference().

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/ibss.c
net/mac80211/mesh.c

index 65b6255c67479cdb30e53e474a59a4e71d6345d3..d30a82f1620bd3400cc261e5e5f74c9a88752e27 100644 (file)
@@ -255,8 +255,7 @@ static void __ieee80211_sta_join_ibss(struct ieee80211_sub_if_data *sdata,
                drv_leave_ibss(local, sdata);
        }
 
-       presp = rcu_dereference_protected(ifibss->presp,
-                                         lockdep_is_held(&sdata->wdev.mtx));
+       presp = sdata_dereference(ifibss->presp, sdata);
        RCU_INIT_POINTER(ifibss->presp, NULL);
        if (presp)
                kfree_rcu(presp, rcu_head);
@@ -509,8 +508,7 @@ int ieee80211_ibss_csa_beacon(struct ieee80211_sub_if_data *sdata,
        rcu_read_unlock();
        cfg80211_put_bss(sdata->local->hw.wiphy, cbss);
 
-       old_presp = rcu_dereference_protected(ifibss->presp,
-                                         lockdep_is_held(&sdata->wdev.mtx));
+       old_presp = sdata_dereference(ifibss->presp, sdata);
 
        presp = ieee80211_ibss_build_presp(sdata,
                                           sdata->vif.bss_conf.beacon_int,
@@ -714,8 +712,7 @@ static void ieee80211_ibss_disconnect(struct ieee80211_sub_if_data *sdata)
        sdata->vif.cfg.ssid_len = 0;
 
        /* remove beacon */
-       presp = rcu_dereference_protected(ifibss->presp,
-                                         lockdep_is_held(&sdata->wdev.mtx));
+       presp = sdata_dereference(ifibss->presp, sdata);
        RCU_INIT_POINTER(sdata->u.ibss.presp, NULL);
        if (presp)
                kfree_rcu(presp, rcu_head);
@@ -1530,8 +1527,7 @@ static void ieee80211_rx_mgmt_probe_req(struct ieee80211_sub_if_data *sdata,
 
        sdata_assert_lock(sdata);
 
-       presp = rcu_dereference_protected(ifibss->presp,
-                                         lockdep_is_held(&sdata->wdev.mtx));
+       presp = sdata_dereference(ifibss->presp, sdata);
 
        if (ifibss->state != IEEE80211_IBSS_MLME_JOINED ||
            len < 24 + 2 || !presp)
index 13722a7f2254d6a3b1687a80732d499e535dbed4..6160211a7eee15d86f4e36212ae8ab6d4e254dbb 100644 (file)
@@ -993,8 +993,7 @@ ieee80211_mesh_rebuild_beacon(struct ieee80211_sub_if_data *sdata)
        struct beacon_data *old_bcn;
        int ret;
 
-       old_bcn = rcu_dereference_protected(sdata->u.mesh.beacon,
-                                           lockdep_is_held(&sdata->wdev.mtx));
+       old_bcn = sdata_dereference(sdata->u.mesh.beacon, sdata);
        ret = ieee80211_mesh_build_beacon(&sdata->u.mesh);
        if (ret)
                /* just reuse old beacon */
@@ -1084,8 +1083,7 @@ void ieee80211_stop_mesh(struct ieee80211_sub_if_data *sdata)
        ieee80211_link_info_change_notify(sdata, 0, BSS_CHANGED_BEACON_ENABLED);
 
        /* remove beacon */
-       bcn = rcu_dereference_protected(ifmsh->beacon,
-                                       lockdep_is_held(&sdata->wdev.mtx));
+       bcn = sdata_dereference(ifmsh->beacon, sdata);
        RCU_INIT_POINTER(ifmsh->beacon, NULL);
        kfree_rcu(bcn, rcu_head);
 
@@ -1380,8 +1378,7 @@ int ieee80211_mesh_finish_csa(struct ieee80211_sub_if_data *sdata)
        ifmsh->chsw_ttl = 0;
 
        /* Remove the CSA and MCSP elements from the beacon */
-       tmp_csa_settings = rcu_dereference_protected(ifmsh->csa,
-                                           lockdep_is_held(&sdata->wdev.mtx));
+       tmp_csa_settings = sdata_dereference(ifmsh->csa, sdata);
        RCU_INIT_POINTER(ifmsh->csa, NULL);
        if (tmp_csa_settings)
                kfree_rcu(tmp_csa_settings, rcu_head);