summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMuna Sinada <muna.sinada@oss.qualcomm.com>2025-03-26 00:31:23 +0300
committerJohannes Berg <johannes.berg@intel.com>2025-04-23 17:56:15 +0300
commitf61c7b3d442bef91dd432d468d08f72eadcc3209 (patch)
tree61c8fcc79f7e3fb305979f18ce3b4cf1551541bd
parentc2095eb633190b2c25d0e9fefd4f42d0e0def332 (diff)
downloadlinux-f61c7b3d442bef91dd432d468d08f72eadcc3209.tar.xz
wifi: mac80211: Add link iteration macro for link data
Currently before iterating through valid links we are utilizing open-coding when checking if vif valid_links is a non-zero value. Add new macro, for_each_link_data(), which iterates through link_id and checks if it is set on vif valid_links. If it is a valid link then access link data for that link id. Signed-off-by: Muna Sinada <muna.sinada@oss.qualcomm.com> Link: https://patch.msgid.link/20250325213125.1509362-2-muna.sinada@oss.qualcomm.com Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-rw-r--r--net/mac80211/ieee80211_i.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
index bf8d8a4145fc..c797513f58e0 100644
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -1226,6 +1226,15 @@ struct ieee80211_sub_if_data *vif_to_sdata(struct ieee80211_vif *p)
if ((_link = wiphy_dereference((_local)->hw.wiphy, \
___sdata->link[___link_id])))
+#define for_each_link_data(sdata, __link) \
+ struct ieee80211_sub_if_data *__sdata = sdata; \
+ for (int __link_id = 0; \
+ __link_id < ARRAY_SIZE((__sdata)->link); __link_id++) \
+ if ((!(__sdata)->vif.valid_links || \
+ (__sdata)->vif.valid_links & BIT(__link_id)) && \
+ ((__link) = sdata_dereference((__sdata)->link[__link_id], \
+ (__sdata))))
+
static inline int
ieee80211_get_mbssid_beacon_len(struct cfg80211_mbssid_elems *elems,
struct cfg80211_rnr_elems *rnr_elems,