aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/sta_info.h
diff options
context:
space:
mode:
Diffstat (limited to 'net/mac80211/sta_info.h')
-rw-r--r--net/mac80211/sta_info.h14
1 files changed, 11 insertions, 3 deletions
diff --git a/net/mac80211/sta_info.h b/net/mac80211/sta_info.h
index 786bbd3103b1..16864a6045b4 100644
--- a/net/mac80211/sta_info.h
+++ b/net/mac80211/sta_info.h
@@ -102,8 +102,18 @@ struct tid_ampdu_tx {
102 * @buf_size: buffer size for incoming A-MPDUs 102 * @buf_size: buffer size for incoming A-MPDUs
103 * @timeout: reset timer value (in TUs). 103 * @timeout: reset timer value (in TUs).
104 * @dialog_token: dialog token for aggregation session 104 * @dialog_token: dialog token for aggregation session
105 * @rcu_head: RCU head used for freeing this struct
106 *
107 * This structure is protected by RCU and the per-station
108 * spinlock. Assignments to the array holding it must hold
109 * the spinlock, only the RX path can access it under RCU
110 * lock-free. The RX path, since it is single-threaded,
111 * can even modify the structure without locking since the
112 * only other modifications to it are done when the struct
113 * can not yet or no longer be found by the RX path.
105 */ 114 */
106struct tid_ampdu_rx { 115struct tid_ampdu_rx {
116 struct rcu_head rcu_head;
107 struct sk_buff **reorder_buf; 117 struct sk_buff **reorder_buf;
108 unsigned long *reorder_time; 118 unsigned long *reorder_time;
109 struct timer_list session_timer; 119 struct timer_list session_timer;
@@ -118,8 +128,7 @@ struct tid_ampdu_rx {
118/** 128/**
119 * struct sta_ampdu_mlme - STA aggregation information. 129 * struct sta_ampdu_mlme - STA aggregation information.
120 * 130 *
121 * @tid_active_rx: TID's state in Rx session state machine. 131 * @tid_rx: aggregation info for Rx per TID -- RCU protected
122 * @tid_rx: aggregation info for Rx per TID
123 * @tid_state_tx: TID's state in Tx session state machine. 132 * @tid_state_tx: TID's state in Tx session state machine.
124 * @tid_tx: aggregation info for Tx per TID 133 * @tid_tx: aggregation info for Tx per TID
125 * @addba_req_num: number of times addBA request has been sent. 134 * @addba_req_num: number of times addBA request has been sent.
@@ -127,7 +136,6 @@ struct tid_ampdu_rx {
127 */ 136 */
128struct sta_ampdu_mlme { 137struct sta_ampdu_mlme {
129 /* rx */ 138 /* rx */
130 bool tid_active_rx[STA_TID_NUM];
131 struct tid_ampdu_rx *tid_rx[STA_TID_NUM]; 139 struct tid_ampdu_rx *tid_rx[STA_TID_NUM];
132 /* tx */ 140 /* tx */
133 u8 tid_state_tx[STA_TID_NUM]; 141 u8 tid_state_tx[STA_TID_NUM];