Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 38bdb650 authored by Felix Fietkau's avatar Felix Fietkau Committed by John W. Linville
Browse files

mac80211: fix the for_each_sta_info macro



Because of an ambiguity in the for_each_sta_info macro, it can
currently only be used if the third parameter is set to 'sta'.
Fix this by renaming the parameter to '_sta'.

Signed-off-by: default avatarFelix Fietkau <nbd@openwrt.org>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 78c4653a
Loading
Loading
Loading
Loading
+8 −8
Original line number Diff line number Diff line
@@ -427,20 +427,20 @@ void for_each_sta_info_type_check(struct ieee80211_local *local,
{
}

#define for_each_sta_info(local, _addr, sta, nxt) 			\
#define for_each_sta_info(local, _addr, _sta, nxt) 			\
	for (	/* initialise loop */					\
		sta = rcu_dereference(local->sta_hash[STA_HASH(_addr)]),\
		nxt = sta ? rcu_dereference(sta->hnext) : NULL;		\
		_sta = rcu_dereference(local->sta_hash[STA_HASH(_addr)]),\
		nxt = _sta ? rcu_dereference(_sta->hnext) : NULL;	\
		/* typecheck */						\
		for_each_sta_info_type_check(local, (_addr), sta, nxt),	\
		for_each_sta_info_type_check(local, (_addr), _sta, nxt),\
		/* continue condition */				\
		sta;							\
		_sta;							\
		/* advance loop */					\
		sta = nxt,						\
		nxt = sta ? rcu_dereference(sta->hnext) : NULL		\
		_sta = nxt,						\
		nxt = _sta ? rcu_dereference(_sta->hnext) : NULL	\
	     )								\
	/* compare address and run code only if it matches */		\
	if (memcmp(sta->sta.addr, (_addr), ETH_ALEN) == 0)
	if (memcmp(_sta->sta.addr, (_addr), ETH_ALEN) == 0)

/*
 * Get STA info by index, BROKEN!