Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

Muna Sinada and committed by
Johannes Berg
f61c7b3d c2095eb6

+9
+9
net/mac80211/ieee80211_i.h
··· 1226 1226 if ((_link = wiphy_dereference((_local)->hw.wiphy, \ 1227 1227 ___sdata->link[___link_id]))) 1228 1228 1229 + #define for_each_link_data(sdata, __link) \ 1230 + struct ieee80211_sub_if_data *__sdata = sdata; \ 1231 + for (int __link_id = 0; \ 1232 + __link_id < ARRAY_SIZE((__sdata)->link); __link_id++) \ 1233 + if ((!(__sdata)->vif.valid_links || \ 1234 + (__sdata)->vif.valid_links & BIT(__link_id)) && \ 1235 + ((__link) = sdata_dereference((__sdata)->link[__link_id], \ 1236 + (__sdata)))) 1237 + 1229 1238 static inline int 1230 1239 ieee80211_get_mbssid_beacon_len(struct cfg80211_mbssid_elems *elems, 1231 1240 struct cfg80211_rnr_elems *rnr_elems,