• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/net/mac80211/

Lines Matching refs:tid_tx

141 	struct tid_ampdu_tx *tid_tx =
144 kfree(tid_tx);
151 struct tid_ampdu_tx *tid_tx = sta->ampdu_mlme.tid_tx[tid];
156 if (!tid_tx)
161 if (test_bit(HT_AGG_STATE_WANT_START, &tid_tx->state)) {
163 rcu_assign_pointer(sta->ampdu_mlme.tid_tx[tid], NULL);
165 call_rcu(&tid_tx->rcu_head, kfree_tid_tx);
176 set_bit(HT_AGG_STATE_STOPPING, &tid_tx->state);
178 del_timer_sync(&tid_tx->addba_resp_timer);
182 * to the driver but are put onto tid_tx->pending instead,
185 clear_bit(HT_AGG_STATE_OPERATIONAL, &tid_tx->state);
187 tid_tx->stop_initiator = initiator;
214 struct tid_ampdu_tx *tid_tx;
218 tid_tx = rcu_dereference(sta->ampdu_mlme.tid_tx[tid]);
219 if (!tid_tx ||
220 test_bit(HT_AGG_STATE_RESPONSE_RECEIVED, &tid_tx->state)) {
280 struct tid_ampdu_tx *tid_tx = sta->ampdu_mlme.tid_tx[tid];
297 clear_bit(HT_AGG_STATE_WANT_START, &tid_tx->state);
315 rcu_assign_pointer(sta->ampdu_mlme.tid_tx[tid], NULL);
319 call_rcu(&tid_tx->rcu_head, kfree_tid_tx);
327 mod_timer(&tid_tx->addba_resp_timer, jiffies + ADDBA_RESP_INTERVAL);
338 tid_tx->dialog_token, start_seq_num,
347 struct tid_ampdu_tx *tid_tx;
391 tid_tx = sta->ampdu_mlme.tid_tx[tid];
393 if (tid_tx) {
403 tid_tx = kzalloc(sizeof(struct tid_ampdu_tx), GFP_ATOMIC);
404 if (!tid_tx) {
414 skb_queue_head_init(&tid_tx->pending);
415 __set_bit(HT_AGG_STATE_WANT_START, &tid_tx->state);
418 tid_tx->addba_resp_timer.function = sta_addba_resp_timer_expired;
419 tid_tx->addba_resp_timer.data = (unsigned long)&sta->timer_to_tid[tid];
420 init_timer(&tid_tx->addba_resp_timer);
424 tid_tx->dialog_token = sta->ampdu_mlme.dialog_token_allocator;
427 rcu_assign_pointer(sta->ampdu_mlme.tid_tx[tid], tid_tx);
444 struct tid_ampdu_tx *tid_tx, u16 tid)
451 if (WARN(!tid_tx, "TID %d gone but expected when splicing aggregates"
455 if (!skb_queue_empty(&tid_tx->pending)) {
458 skb_queue_splice_tail_init(&tid_tx->pending,
489 ieee80211_agg_splice_packets(local, sta->ampdu_mlme.tid_tx[tid], tid);
495 set_bit(HT_AGG_STATE_OPERATIONAL, &sta->ampdu_mlme.tid_tx[tid]->state);
506 struct tid_ampdu_tx *tid_tx;
529 tid_tx = sta->ampdu_mlme.tid_tx[tid];
531 if (WARN_ON(!tid_tx)) {
538 if (WARN_ON(test_and_set_bit(HT_AGG_STATE_DRV_READY, &tid_tx->state)))
541 if (test_bit(HT_AGG_STATE_RESPONSE_RECEIVED, &tid_tx->state))
594 struct tid_ampdu_tx *tid_tx;
606 tid_tx = sta->ampdu_mlme.tid_tx[tid];
608 if (!tid_tx) {
613 if (test_bit(HT_AGG_STATE_STOPPING, &tid_tx->state)) {
619 set_bit(HT_AGG_STATE_WANT_STOP, &tid_tx->state);
633 struct tid_ampdu_tx *tid_tx;
662 tid_tx = sta->ampdu_mlme.tid_tx[tid];
664 if (!tid_tx || !test_bit(HT_AGG_STATE_STOPPING, &tid_tx->state)) {
671 if (tid_tx->stop_initiator == WLAN_BACK_INITIATOR)
681 * guaranteeing that no packets go to the tid_tx pending queue any
685 ieee80211_agg_splice_packets(local, tid_tx, tid);
687 /* future packets must not find the tid_tx struct any more */
688 rcu_assign_pointer(sta->ampdu_mlme.tid_tx[tid], NULL);
692 call_rcu(&tid_tx->rcu_head, kfree_tid_tx);
733 struct tid_ampdu_tx *tid_tx;
741 tid_tx = sta->ampdu_mlme.tid_tx[tid];
742 if (!tid_tx)
745 if (mgmt->u.action.u.addba_resp.dialog_token != tid_tx->dialog_token) {
752 del_timer(&tid_tx->addba_resp_timer);
761 &tid_tx->state)) {
766 if (test_bit(HT_AGG_STATE_DRV_READY, &tid_tx->state))