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: Miriam Rachel Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20240612143707.9f8141ae1725.I343822bbba0ae08dedb2f54a0ce87f2ae5ebeb2b@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
Johannes Berg 2024-06-12 14:35:56 +02:00
parent dd7b1bdb56
commit d42fcaece0
2 changed files with 8 additions and 4 deletions

View File

@ -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

View File

@ -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 */