wifi: mac80211: add an ieee80211_get_link_sband
authorShaul Triebitz <shaul.triebitz@intel.com>
Sun, 19 Jun 2022 12:08:02 +0000 (15:08 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Fri, 15 Jul 2022 09:43:13 +0000 (11:43 +0200)
Similar to ieee80211_get_sband but get the sband of the link_conf.

Signed-off-by: Shaul Triebitz <shaul.triebitz@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/ieee80211_i.h

index 484ae6355cb8e294a4b1f6228102c8971aa2b890..604825dde4fd5f6b31b4eaacb87aa7541ee51f5f 100644 (file)
@@ -1543,6 +1543,28 @@ ieee80211_get_sband(struct ieee80211_sub_if_data *sdata)
        return local->hw.wiphy->bands[band];
 }
 
+static inline struct ieee80211_supported_band *
+ieee80211_get_link_sband(struct ieee80211_sub_if_data *sdata, u32 link_id)
+{
+       struct ieee80211_local *local = sdata->local;
+       struct ieee80211_chanctx_conf *chanctx_conf;
+       enum nl80211_band band;
+
+       rcu_read_lock();
+       chanctx_conf =
+               rcu_dereference(sdata->vif.link_conf[link_id]->chanctx_conf);
+
+       if (!chanctx_conf) {
+               rcu_read_unlock();
+               return NULL;
+       }
+
+       band = chanctx_conf->def.chan->band;
+       rcu_read_unlock();
+
+       return local->hw.wiphy->bands[band];
+}
+
 /* this struct holds the value parsing from channel switch IE  */
 struct ieee80211_csa_ie {
        struct cfg80211_chan_def chandef;