tid_agg_rx        275 net/mac80211/agg-rx.c 	struct tid_ampdu_rx *tid_agg_rx;
tid_agg_rx        386 net/mac80211/agg-rx.c 	tid_agg_rx = kzalloc(sizeof(*tid_agg_rx), GFP_KERNEL);
tid_agg_rx        387 net/mac80211/agg-rx.c 	if (!tid_agg_rx)
tid_agg_rx        390 net/mac80211/agg-rx.c 	spin_lock_init(&tid_agg_rx->reorder_lock);
tid_agg_rx        393 net/mac80211/agg-rx.c 	timer_setup(&tid_agg_rx->session_timer,
tid_agg_rx        397 net/mac80211/agg-rx.c 	timer_setup(&tid_agg_rx->reorder_timer,
tid_agg_rx        401 net/mac80211/agg-rx.c 	tid_agg_rx->reorder_buf =
tid_agg_rx        403 net/mac80211/agg-rx.c 	tid_agg_rx->reorder_time =
tid_agg_rx        405 net/mac80211/agg-rx.c 	if (!tid_agg_rx->reorder_buf || !tid_agg_rx->reorder_time) {
tid_agg_rx        406 net/mac80211/agg-rx.c 		kfree(tid_agg_rx->reorder_buf);
tid_agg_rx        407 net/mac80211/agg-rx.c 		kfree(tid_agg_rx->reorder_time);
tid_agg_rx        408 net/mac80211/agg-rx.c 		kfree(tid_agg_rx);
tid_agg_rx        413 net/mac80211/agg-rx.c 		__skb_queue_head_init(&tid_agg_rx->reorder_buf[i]);
tid_agg_rx        419 net/mac80211/agg-rx.c 		kfree(tid_agg_rx->reorder_buf);
tid_agg_rx        420 net/mac80211/agg-rx.c 		kfree(tid_agg_rx->reorder_time);
tid_agg_rx        421 net/mac80211/agg-rx.c 		kfree(tid_agg_rx);
tid_agg_rx        426 net/mac80211/agg-rx.c 	tid_agg_rx->ssn = start_seq_num;
tid_agg_rx        427 net/mac80211/agg-rx.c 	tid_agg_rx->head_seq_num = start_seq_num;
tid_agg_rx        428 net/mac80211/agg-rx.c 	tid_agg_rx->buf_size = buf_size;
tid_agg_rx        429 net/mac80211/agg-rx.c 	tid_agg_rx->timeout = timeout;
tid_agg_rx        430 net/mac80211/agg-rx.c 	tid_agg_rx->stored_mpdu_num = 0;
tid_agg_rx        431 net/mac80211/agg-rx.c 	tid_agg_rx->auto_seq = auto_seq;
tid_agg_rx        432 net/mac80211/agg-rx.c 	tid_agg_rx->started = false;
tid_agg_rx        433 net/mac80211/agg-rx.c 	tid_agg_rx->reorder_buf_filtered = 0;
tid_agg_rx        434 net/mac80211/agg-rx.c 	tid_agg_rx->tid = tid;
tid_agg_rx        435 net/mac80211/agg-rx.c 	tid_agg_rx->sta = sta;
tid_agg_rx        439 net/mac80211/agg-rx.c 	rcu_assign_pointer(sta->ampdu_mlme.tid_rx[tid], tid_agg_rx);
tid_agg_rx        442 net/mac80211/agg-rx.c 		mod_timer(&tid_agg_rx->session_timer, TU_TO_EXP_TIME(timeout));
tid_agg_rx        443 net/mac80211/agg-rx.c 		tid_agg_rx->last_rx = jiffies;
tid_agg_rx       1103 net/mac80211/rx.c static inline bool ieee80211_rx_reorder_ready(struct tid_ampdu_rx *tid_agg_rx,
tid_agg_rx       1106 net/mac80211/rx.c 	struct sk_buff_head *frames = &tid_agg_rx->reorder_buf[index];
tid_agg_rx       1110 net/mac80211/rx.c 	if (tid_agg_rx->reorder_buf_filtered & BIT_ULL(index))
tid_agg_rx       1124 net/mac80211/rx.c 					    struct tid_ampdu_rx *tid_agg_rx,
tid_agg_rx       1128 net/mac80211/rx.c 	struct sk_buff_head *skb_list = &tid_agg_rx->reorder_buf[index];
tid_agg_rx       1132 net/mac80211/rx.c 	lockdep_assert_held(&tid_agg_rx->reorder_lock);
tid_agg_rx       1137 net/mac80211/rx.c 	if (!ieee80211_rx_reorder_ready(tid_agg_rx, index)) {
tid_agg_rx       1143 net/mac80211/rx.c 	tid_agg_rx->stored_mpdu_num--;
tid_agg_rx       1151 net/mac80211/rx.c 	tid_agg_rx->reorder_buf_filtered &= ~BIT_ULL(index);
tid_agg_rx       1152 net/mac80211/rx.c 	tid_agg_rx->head_seq_num = ieee80211_sn_inc(tid_agg_rx->head_seq_num);
tid_agg_rx       1156 net/mac80211/rx.c 					     struct tid_ampdu_rx *tid_agg_rx,
tid_agg_rx       1162 net/mac80211/rx.c 	lockdep_assert_held(&tid_agg_rx->reorder_lock);
tid_agg_rx       1164 net/mac80211/rx.c 	while (ieee80211_sn_less(tid_agg_rx->head_seq_num, head_seq_num)) {
tid_agg_rx       1165 net/mac80211/rx.c 		index = tid_agg_rx->head_seq_num % tid_agg_rx->buf_size;
tid_agg_rx       1166 net/mac80211/rx.c 		ieee80211_release_reorder_frame(sdata, tid_agg_rx, index,
tid_agg_rx       1183 net/mac80211/rx.c 					  struct tid_ampdu_rx *tid_agg_rx,
tid_agg_rx       1188 net/mac80211/rx.c 	lockdep_assert_held(&tid_agg_rx->reorder_lock);
tid_agg_rx       1191 net/mac80211/rx.c 	index = tid_agg_rx->head_seq_num % tid_agg_rx->buf_size;
tid_agg_rx       1192 net/mac80211/rx.c 	if (!ieee80211_rx_reorder_ready(tid_agg_rx, index) &&
tid_agg_rx       1193 net/mac80211/rx.c 	    tid_agg_rx->stored_mpdu_num) {
tid_agg_rx       1199 net/mac80211/rx.c 		for (j = (index + 1) % tid_agg_rx->buf_size; j != index;
tid_agg_rx       1200 net/mac80211/rx.c 		     j = (j + 1) % tid_agg_rx->buf_size) {
tid_agg_rx       1201 net/mac80211/rx.c 			if (!ieee80211_rx_reorder_ready(tid_agg_rx, j)) {
tid_agg_rx       1206 net/mac80211/rx.c 			    !time_after(jiffies, tid_agg_rx->reorder_time[j] +
tid_agg_rx       1211 net/mac80211/rx.c 			for (i = (index + 1) % tid_agg_rx->buf_size; i != j;
tid_agg_rx       1212 net/mac80211/rx.c 			     i = (i + 1) % tid_agg_rx->buf_size)
tid_agg_rx       1213 net/mac80211/rx.c 				__skb_queue_purge(&tid_agg_rx->reorder_buf[i]);
tid_agg_rx       1217 net/mac80211/rx.c 			ieee80211_release_reorder_frame(sdata, tid_agg_rx, j,
tid_agg_rx       1223 net/mac80211/rx.c 			tid_agg_rx->head_seq_num =
tid_agg_rx       1224 net/mac80211/rx.c 				(tid_agg_rx->head_seq_num +
tid_agg_rx       1228 net/mac80211/rx.c 	} else while (ieee80211_rx_reorder_ready(tid_agg_rx, index)) {
tid_agg_rx       1229 net/mac80211/rx.c 		ieee80211_release_reorder_frame(sdata, tid_agg_rx, index,
tid_agg_rx       1231 net/mac80211/rx.c 		index =	tid_agg_rx->head_seq_num % tid_agg_rx->buf_size;
tid_agg_rx       1234 net/mac80211/rx.c 	if (tid_agg_rx->stored_mpdu_num) {
tid_agg_rx       1235 net/mac80211/rx.c 		j = index = tid_agg_rx->head_seq_num % tid_agg_rx->buf_size;
tid_agg_rx       1237 net/mac80211/rx.c 		for (; j != (index - 1) % tid_agg_rx->buf_size;
tid_agg_rx       1238 net/mac80211/rx.c 		     j = (j + 1) % tid_agg_rx->buf_size) {
tid_agg_rx       1239 net/mac80211/rx.c 			if (ieee80211_rx_reorder_ready(tid_agg_rx, j))
tid_agg_rx       1245 net/mac80211/rx.c 		if (!tid_agg_rx->removed)
tid_agg_rx       1246 net/mac80211/rx.c 			mod_timer(&tid_agg_rx->reorder_timer,
tid_agg_rx       1247 net/mac80211/rx.c 				  tid_agg_rx->reorder_time[j] + 1 +
tid_agg_rx       1250 net/mac80211/rx.c 		del_timer(&tid_agg_rx->reorder_timer);
tid_agg_rx       1260 net/mac80211/rx.c 					     struct tid_ampdu_rx *tid_agg_rx,
tid_agg_rx       1272 net/mac80211/rx.c 	spin_lock(&tid_agg_rx->reorder_lock);
tid_agg_rx       1278 net/mac80211/rx.c 	if (unlikely(tid_agg_rx->auto_seq)) {
tid_agg_rx       1279 net/mac80211/rx.c 		tid_agg_rx->auto_seq = false;
tid_agg_rx       1280 net/mac80211/rx.c 		tid_agg_rx->ssn = mpdu_seq_num;
tid_agg_rx       1281 net/mac80211/rx.c 		tid_agg_rx->head_seq_num = mpdu_seq_num;
tid_agg_rx       1284 net/mac80211/rx.c 	buf_size = tid_agg_rx->buf_size;
tid_agg_rx       1285 net/mac80211/rx.c 	head_seq_num = tid_agg_rx->head_seq_num;
tid_agg_rx       1291 net/mac80211/rx.c 	if (unlikely(!tid_agg_rx->started)) {
tid_agg_rx       1296 net/mac80211/rx.c 		tid_agg_rx->started = true;
tid_agg_rx       1313 net/mac80211/rx.c 		ieee80211_release_reorder_frames(sdata, tid_agg_rx,
tid_agg_rx       1319 net/mac80211/rx.c 	index = mpdu_seq_num % tid_agg_rx->buf_size;
tid_agg_rx       1322 net/mac80211/rx.c 	if (ieee80211_rx_reorder_ready(tid_agg_rx, index)) {
tid_agg_rx       1333 net/mac80211/rx.c 	if (mpdu_seq_num == tid_agg_rx->head_seq_num &&
tid_agg_rx       1334 net/mac80211/rx.c 	    tid_agg_rx->stored_mpdu_num == 0) {
tid_agg_rx       1336 net/mac80211/rx.c 			tid_agg_rx->head_seq_num =
tid_agg_rx       1337 net/mac80211/rx.c 				ieee80211_sn_inc(tid_agg_rx->head_seq_num);
tid_agg_rx       1343 net/mac80211/rx.c 	__skb_queue_tail(&tid_agg_rx->reorder_buf[index], skb);
tid_agg_rx       1345 net/mac80211/rx.c 		tid_agg_rx->reorder_time[index] = jiffies;
tid_agg_rx       1346 net/mac80211/rx.c 		tid_agg_rx->stored_mpdu_num++;
tid_agg_rx       1347 net/mac80211/rx.c 		ieee80211_sta_reorder_release(sdata, tid_agg_rx, frames);
tid_agg_rx       1351 net/mac80211/rx.c 	spin_unlock(&tid_agg_rx->reorder_lock);
tid_agg_rx       1366 net/mac80211/rx.c 	struct tid_ampdu_rx *tid_agg_rx;
tid_agg_rx       1386 net/mac80211/rx.c 	tid_agg_rx = rcu_dereference(sta->ampdu_mlme.tid_rx[tid]);
tid_agg_rx       1387 net/mac80211/rx.c 	if (!tid_agg_rx) {
tid_agg_rx       1409 net/mac80211/rx.c 	if (tid_agg_rx->timeout)
tid_agg_rx       1410 net/mac80211/rx.c 		tid_agg_rx->last_rx = jiffies;
tid_agg_rx       1427 net/mac80211/rx.c 	if (ieee80211_sta_manage_reorder_buf(rx->sdata, tid_agg_rx, skb,
tid_agg_rx       2894 net/mac80211/rx.c 	struct tid_ampdu_rx *tid_agg_rx;
tid_agg_rx       2924 net/mac80211/rx.c 		tid_agg_rx = rcu_dereference(rx->sta->ampdu_mlme.tid_rx[tid]);
tid_agg_rx       2925 net/mac80211/rx.c 		if (!tid_agg_rx)
tid_agg_rx       2934 net/mac80211/rx.c 		if (tid_agg_rx->timeout)
tid_agg_rx       2935 net/mac80211/rx.c 			mod_timer(&tid_agg_rx->session_timer,
tid_agg_rx       2936 net/mac80211/rx.c 				  TU_TO_EXP_TIME(tid_agg_rx->timeout));
tid_agg_rx       2938 net/mac80211/rx.c 		spin_lock(&tid_agg_rx->reorder_lock);
tid_agg_rx       2940 net/mac80211/rx.c 		ieee80211_release_reorder_frames(rx->sdata, tid_agg_rx,
tid_agg_rx       2942 net/mac80211/rx.c 		spin_unlock(&tid_agg_rx->reorder_lock);
tid_agg_rx       3720 net/mac80211/rx.c 	struct tid_ampdu_rx *tid_agg_rx;
tid_agg_rx       3722 net/mac80211/rx.c 	tid_agg_rx = rcu_dereference(sta->ampdu_mlme.tid_rx[tid]);
tid_agg_rx       3723 net/mac80211/rx.c 	if (!tid_agg_rx)
tid_agg_rx       3728 net/mac80211/rx.c 	spin_lock(&tid_agg_rx->reorder_lock);
tid_agg_rx       3729 net/mac80211/rx.c 	ieee80211_sta_reorder_release(sta->sdata, tid_agg_rx, &frames);
tid_agg_rx       3730 net/mac80211/rx.c 	spin_unlock(&tid_agg_rx->reorder_lock);
tid_agg_rx       3749 net/mac80211/rx.c 	struct tid_ampdu_rx *tid_agg_rx;
tid_agg_rx       3770 net/mac80211/rx.c 	tid_agg_rx = rcu_dereference(sta->ampdu_mlme.tid_rx[tid]);
tid_agg_rx       3771 net/mac80211/rx.c 	if (!tid_agg_rx)
tid_agg_rx       3774 net/mac80211/rx.c 	spin_lock_bh(&tid_agg_rx->reorder_lock);
tid_agg_rx       3780 net/mac80211/rx.c 		release = (tid_agg_rx->head_seq_num + tid_agg_rx->buf_size) %
tid_agg_rx       3782 net/mac80211/rx.c 		ieee80211_release_reorder_frames(sta->sdata, tid_agg_rx,
tid_agg_rx       3785 net/mac80211/rx.c 		tid_agg_rx->head_seq_num = ssn;
tid_agg_rx       3787 net/mac80211/rx.c 		ieee80211_release_reorder_frames(sta->sdata, tid_agg_rx, ssn,
tid_agg_rx       3793 net/mac80211/rx.c 	diff = (tid_agg_rx->head_seq_num - ssn) & IEEE80211_SN_MASK;
tid_agg_rx       3794 net/mac80211/rx.c 	if (diff >= tid_agg_rx->buf_size) {
tid_agg_rx       3795 net/mac80211/rx.c 		tid_agg_rx->reorder_buf_filtered = 0;
tid_agg_rx       3802 net/mac80211/rx.c 	for (i = 0; i < tid_agg_rx->buf_size; i++) {
tid_agg_rx       3803 net/mac80211/rx.c 		int index = (ssn + i) % tid_agg_rx->buf_size;
tid_agg_rx       3805 net/mac80211/rx.c 		tid_agg_rx->reorder_buf_filtered &= ~BIT_ULL(index);
tid_agg_rx       3807 net/mac80211/rx.c 			tid_agg_rx->reorder_buf_filtered |= BIT_ULL(index);
tid_agg_rx       3811 net/mac80211/rx.c 	ieee80211_sta_reorder_release(sta->sdata, tid_agg_rx, &frames);
tid_agg_rx       3814 net/mac80211/rx.c 	spin_unlock_bh(&tid_agg_rx->reorder_lock);