mirror of
https://github.com/Telecominfraproject/wlan-ap.git
synced 2025-12-20 19:03:39 +00:00
53 lines
1.9 KiB
Diff
53 lines
1.9 KiB
Diff
From 1d9e4c91db17c9bf6f94ac234a4d4f2bffd52b97 Mon Sep 17 00:00:00 2001
|
|
From: Benjamin Berg <benjamin.berg@intel.com>
|
|
Date: Tue, 6 Sep 2022 19:02:04 +0200
|
|
Subject: [PATCH] wifi: mac80211: add pointer from link STA to STA
|
|
|
|
While often not needed, this considerably simplifies going from a link
|
|
to the STA. This helps in cases such as debugfs where a single pointer
|
|
should allow accessing a specific link and the STA.
|
|
|
|
Signed-off-by: Benjamin Berg <benjamin.berg@intel.com>
|
|
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
|
---
|
|
include/net/mac80211.h | 3 +++
|
|
net/mac80211/sta_info.c | 1 +
|
|
2 files changed, 4 insertions(+)
|
|
|
|
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
|
|
index ac2bad57933f..7778a92d9582 100644
|
|
--- a/include/net/mac80211.h
|
|
+++ b/include/net/mac80211.h
|
|
@@ -2176,6 +2176,7 @@ struct ieee80211_sta_aggregates {
|
|
* All link specific info for a STA link for a non MLD STA(single)
|
|
* or a MLD STA(multiple entries) are stored here.
|
|
*
|
|
+ * @sta: reference to owning STA
|
|
* @addr: MAC address of the Link STA. For non-MLO STA this is same as the addr
|
|
* in ieee80211_sta. For MLO Link STA this addr can be same or different
|
|
* from addr in ieee80211_sta (representing MLD STA addr)
|
|
@@ -2196,6 +2197,8 @@ struct ieee80211_sta_aggregates {
|
|
*
|
|
*/
|
|
struct ieee80211_link_sta {
|
|
+ struct ieee80211_sta *sta;
|
|
+
|
|
u8 addr[ETH_ALEN];
|
|
u8 link_id;
|
|
enum ieee80211_smps_mode smps_mode;
|
|
diff --git a/net/mac80211/sta_info.c b/net/mac80211/sta_info.c
|
|
index cebfd148bb40..71b1488bd390 100644
|
|
--- a/net/mac80211/sta_info.c
|
|
+++ b/net/mac80211/sta_info.c
|
|
@@ -511,6 +511,7 @@ static void sta_info_add_link(struct sta_info *sta,
|
|
link_info->sta = sta;
|
|
link_info->link_id = link_id;
|
|
link_info->pub = link_sta;
|
|
+ link_info->pub->sta = &sta->sta;
|
|
link_sta->link_id = link_id;
|
|
rcu_assign_pointer(sta->link[link_id], link_info);
|
|
rcu_assign_pointer(sta->sta.link[link_id], link_sta);
|
|
--
|
|
2.17.1
|
|
|