diff options
author | Johannes Berg <johannes.berg@intel.com> | 2022-09-27 11:39:23 +0200 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2022-10-07 15:24:13 +0200 |
commit | f3630c4f82ae43682bf84e6ddcbd7e97285d4699 (patch) | |
tree | 0eecde1cf965f3a60a12bc74a53d099ed7a6cc7f /include/net/mac80211.h | |
parent | wifi: mac80211: fix AddBA response addressing (diff) | |
download | linux-f3630c4f82ae43682bf84e6ddcbd7e97285d4699.tar.gz linux-f3630c4f82ae43682bf84e6ddcbd7e97285d4699.tar.bz2 linux-f3630c4f82ae43682bf84e6ddcbd7e97285d4699.zip |
wifi: mac80211: add RCU _check() link access variants
We might sometimes need to use RCU and locking in the same code
path, so add the two variants link_conf_dereference_check() and
link_sta_dereference_check().
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'include/net/mac80211.h')
-rw-r--r-- | include/net/mac80211.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index c413050ec8dd..cda4584dfd51 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h @@ -1915,6 +1915,10 @@ static inline bool lockdep_vif_mutex_held(struct ieee80211_vif *vif) rcu_dereference_protected((vif)->link_conf[link_id], \ lockdep_vif_mutex_held(vif)) +#define link_conf_dereference_check(vif, link_id) \ + rcu_dereference_check((vif)->link_conf[link_id], \ + lockdep_vif_mutex_held(vif)) + /** * enum ieee80211_key_flags - key flags * @@ -2311,6 +2315,10 @@ static inline bool lockdep_sta_mutex_held(struct ieee80211_sta *pubsta) rcu_dereference_protected((sta)->link[link_id], \ lockdep_sta_mutex_held(sta)) +#define link_sta_dereference_check(sta, link_id) \ + rcu_dereference_check((sta)->link[link_id], \ + lockdep_sta_mutex_held(sta)) + #define for_each_sta_active_link(vif, sta, link_sta, link_id) \ for (link_id = 0; link_id < ARRAY_SIZE((sta)->link); link_id++) \ if ((!(vif)->active_links || \ |