Commit f562f6a5 authored by Aditya Kumar Singh's avatar Aditya Kumar Singh Committed by Johannes Berg
Browse files

wifi: mac80211: fix macro scoping in for_each_link_data



The for_each_link_data() macro currently declares a local variable
__sdata directly, which could lead to compiler warnings or errors when
reused in the same function or within switch-case blocks due to variable
redefinition or invalid scoping.

To address this, restructure the macro to use an outer for-loop that runs
only once, allowing safe declaration of __sdata without polluting the outer
scope. This ensures compatibility with static analyzers.

No functional changes; this is purely a cleanup to improve macro hygiene.

Signed-off-by: default avatarAditya Kumar Singh <aditya.kumar.singh@oss.qualcomm.com>
Signed-off-by: default avatarMaharaja Kennadyrajan <maharaja.kennadyrajan@oss.qualcomm.com>
Link: https://patch.msgid.link/20250718060837.59371-2-maharaja.kennadyrajan@oss.qualcomm.com


Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent 765e98e9
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -1242,7 +1242,9 @@ struct ieee80211_sub_if_data *vif_to_sdata(struct ieee80211_vif *p)
	if ((_link = rcu_dereference((___sdata)->link[___link_id])))

#define for_each_link_data(sdata, __link)					\
	struct ieee80211_sub_if_data *__sdata = sdata;				\
	/* outer loop just to define the variable ... */			\
	for (struct ieee80211_sub_if_data *__sdata = (sdata); __sdata;		\
		__sdata = NULL /* always stop */)				\
	for (int __link_id = 0;							\
	     __link_id < ARRAY_SIZE((__sdata)->link); __link_id++)		\
		if ((!(__sdata)->vif.valid_links ||				\