Commit d42fcaec authored by Johannes Berg's avatar Johannes Berg

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@changeidSigned-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent dd7b1bdb
...@@ -727,6 +727,12 @@ struct sta_info { ...@@ -727,6 +727,12 @@ struct sta_info {
struct ieee80211_sta sta; 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) static inline enum nl80211_plink_state sta_plink_state(struct sta_info *sta)
{ {
#ifdef CONFIG_MAC80211_MESH #ifdef CONFIG_MAC80211_MESH
......
...@@ -2774,8 +2774,7 @@ static struct sk_buff *ieee80211_build_hdr(struct ieee80211_sub_if_data *sdata, ...@@ -2774,8 +2774,7 @@ static struct sk_buff *ieee80211_build_hdr(struct ieee80211_sub_if_data *sdata,
if (tdls_peer) { if (tdls_peer) {
/* For TDLS only one link can be valid with peer STA */ /* For TDLS only one link can be valid with peer STA */
int tdls_link_id = sta->sta.valid_links ? int tdls_link_id = ieee80211_tdls_sta_link_id(sta);
__ffs(sta->sta.valid_links) : 0;
struct ieee80211_link_data *link; struct ieee80211_link_data *link;
/* DA SA BSSID */ /* DA SA BSSID */
...@@ -3101,8 +3100,7 @@ void ieee80211_check_fast_xmit(struct sta_info *sta) ...@@ -3101,8 +3100,7 @@ void ieee80211_check_fast_xmit(struct sta_info *sta)
case NL80211_IFTYPE_STATION: case NL80211_IFTYPE_STATION:
if (test_sta_flag(sta, WLAN_STA_TDLS_PEER)) { if (test_sta_flag(sta, WLAN_STA_TDLS_PEER)) {
/* For TDLS only one link can be valid with peer STA */ /* For TDLS only one link can be valid with peer STA */
int tdls_link_id = sta->sta.valid_links ? int tdls_link_id = ieee80211_tdls_sta_link_id(sta);
__ffs(sta->sta.valid_links) : 0;
struct ieee80211_link_data *link; struct ieee80211_link_data *link;
/* DA SA BSSID */ /* DA SA BSSID */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment