Commit d42fcaec authored by Johannes Berg's avatar Johannes Berg
Browse files

wifi: mac80211: add ieee80211_tdls_sta_link_id()



We've open-coded this twice and will need it again,
add ieee80211_tdls_sta_link_id() to get the one link
ID for a TDLS STA.

Reviewed-by: default avatarMiriam Rachel Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20240612143707.9f8141ae1725.I343822bbba0ae08dedb2f54a0ce87f2ae5ebeb2b@changeid


Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent dd7b1bdb
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -727,6 +727,12 @@ struct sta_info {
	struct ieee80211_sta sta;
};

static inline int ieee80211_tdls_sta_link_id(struct sta_info *sta)
{
	/* TDLS STA can only have a single link */
	return sta->sta.valid_links ? __ffs(sta->sta.valid_links) : 0;
}

static inline enum nl80211_plink_state sta_plink_state(struct sta_info *sta)
{
#ifdef CONFIG_MAC80211_MESH
+2 −4
Original line number Diff line number Diff line
@@ -2774,8 +2774,7 @@ static struct sk_buff *ieee80211_build_hdr(struct ieee80211_sub_if_data *sdata,

		if (tdls_peer) {
			/* For TDLS only one link can be valid with peer STA */
			int tdls_link_id = sta->sta.valid_links ?
					   __ffs(sta->sta.valid_links) : 0;
			int tdls_link_id = ieee80211_tdls_sta_link_id(sta);
			struct ieee80211_link_data *link;

			/* DA SA BSSID */
@@ -3101,8 +3100,7 @@ void ieee80211_check_fast_xmit(struct sta_info *sta)
	case NL80211_IFTYPE_STATION:
		if (test_sta_flag(sta, WLAN_STA_TDLS_PEER)) {
			/* For TDLS only one link can be valid with peer STA */
			int tdls_link_id = sta->sta.valid_links ?
					   __ffs(sta->sta.valid_links) : 0;
			int tdls_link_id = ieee80211_tdls_sta_link_id(sta);
			struct ieee80211_link_data *link;

			/* DA SA BSSID */