Lines Matching refs:tx

40 static __le16 ieee80211_duration(struct ieee80211_tx_data *tx,  in ieee80211_duration()  argument
46 struct ieee80211_local *local = tx->local; in ieee80211_duration()
54 chanctx_conf = rcu_dereference(tx->sdata->vif.chanctx_conf); in ieee80211_duration()
62 if (tx->rate.flags & (IEEE80211_TX_RC_MCS | IEEE80211_TX_RC_VHT_MCS)) in ieee80211_duration()
66 if (WARN_ON_ONCE(tx->rate.idx < 0)) in ieee80211_duration()
70 txrate = &sband->bitrates[tx->rate.idx]; in ieee80211_duration()
139 if (tx->sdata->vif.bss_conf.basic_rates & BIT(i)) in ieee80211_duration()
145 if (tx->sdata->flags & IEEE80211_SDATA_OPERATING_GMODE) in ieee80211_duration()
179 tx->sdata->vif.bss_conf.use_short_preamble, in ieee80211_duration()
189 tx->sdata->vif.bss_conf.use_short_preamble, in ieee80211_duration()
198 ieee80211_tx_h_dynamic_ps(struct ieee80211_tx_data *tx) in ieee80211_tx_h_dynamic_ps() argument
200 struct ieee80211_local *local = tx->local; in ieee80211_tx_h_dynamic_ps()
227 if (tx->sdata->vif.type != NL80211_IFTYPE_STATION) in ieee80211_tx_h_dynamic_ps()
230 ifmgd = &tx->sdata->u.mgd; in ieee80211_tx_h_dynamic_ps()
247 skb_get_queue_mapping(tx->skb) == IEEE80211_AC_VO) in ieee80211_tx_h_dynamic_ps()
271 ieee80211_tx_h_check_assoc(struct ieee80211_tx_data *tx) in ieee80211_tx_h_check_assoc() argument
274 struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)tx->skb->data; in ieee80211_tx_h_check_assoc()
275 struct ieee80211_tx_info *info = IEEE80211_SKB_CB(tx->skb); in ieee80211_tx_h_check_assoc()
281 if (unlikely(test_bit(SCAN_SW_SCANNING, &tx->local->scanning)) && in ieee80211_tx_h_check_assoc()
282 test_bit(SDATA_STATE_OFFCHANNEL, &tx->sdata->state) && in ieee80211_tx_h_check_assoc()
298 if (tx->sdata->vif.type == NL80211_IFTYPE_OCB) in ieee80211_tx_h_check_assoc()
301 if (tx->sdata->vif.type == NL80211_IFTYPE_WDS) in ieee80211_tx_h_check_assoc()
304 if (tx->flags & IEEE80211_TX_PS_BUFFERED) in ieee80211_tx_h_check_assoc()
307 if (tx->sta) in ieee80211_tx_h_check_assoc()
308 assoc = test_sta_flag(tx->sta, WLAN_STA_ASSOC); in ieee80211_tx_h_check_assoc()
310 if (likely(tx->flags & IEEE80211_TX_UNICAST)) { in ieee80211_tx_h_check_assoc()
314 sdata_info(tx->sdata, in ieee80211_tx_h_check_assoc()
318 I802_DEBUG_INC(tx->local->tx_handlers_drop_not_assoc); in ieee80211_tx_h_check_assoc()
321 } else if (unlikely(tx->sdata->vif.type == NL80211_IFTYPE_AP && in ieee80211_tx_h_check_assoc()
323 !atomic_read(&tx->sdata->u.ap.num_mcast_sta))) { in ieee80211_tx_h_check_assoc()
386 ieee80211_tx_h_multicast_ps_buf(struct ieee80211_tx_data *tx) in ieee80211_tx_h_multicast_ps_buf() argument
388 struct ieee80211_tx_info *info = IEEE80211_SKB_CB(tx->skb); in ieee80211_tx_h_multicast_ps_buf()
389 struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)tx->skb->data; in ieee80211_tx_h_multicast_ps_buf()
401 if (tx->sdata->vif.type == NL80211_IFTYPE_AP || in ieee80211_tx_h_multicast_ps_buf()
402 tx->sdata->vif.type == NL80211_IFTYPE_AP_VLAN) { in ieee80211_tx_h_multicast_ps_buf()
403 if (!tx->sdata->bss) in ieee80211_tx_h_multicast_ps_buf()
406 ps = &tx->sdata->bss->ps; in ieee80211_tx_h_multicast_ps_buf()
407 } else if (ieee80211_vif_is_mesh(&tx->sdata->vif)) { in ieee80211_tx_h_multicast_ps_buf()
408 ps = &tx->sdata->u.mesh.ps; in ieee80211_tx_h_multicast_ps_buf()
421 if (tx->local->hw.flags & IEEE80211_HW_QUEUE_CONTROL) in ieee80211_tx_h_multicast_ps_buf()
422 info->hw_queue = tx->sdata->vif.cab_queue; in ieee80211_tx_h_multicast_ps_buf()
431 if (!(tx->local->hw.flags & IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING)) in ieee80211_tx_h_multicast_ps_buf()
435 if (tx->local->total_ps_buffered >= TOTAL_MAX_TX_BUFFER) in ieee80211_tx_h_multicast_ps_buf()
436 purge_old_ps_buffers(tx->local); in ieee80211_tx_h_multicast_ps_buf()
439 ps_dbg(tx->sdata, in ieee80211_tx_h_multicast_ps_buf()
443 tx->local->total_ps_buffered++; in ieee80211_tx_h_multicast_ps_buf()
445 skb_queue_tail(&ps->bc_buf, tx->skb); in ieee80211_tx_h_multicast_ps_buf()
466 ieee80211_tx_h_unicast_ps_buf(struct ieee80211_tx_data *tx) in ieee80211_tx_h_unicast_ps_buf() argument
468 struct sta_info *sta = tx->sta; in ieee80211_tx_h_unicast_ps_buf()
469 struct ieee80211_tx_info *info = IEEE80211_SKB_CB(tx->skb); in ieee80211_tx_h_unicast_ps_buf()
470 struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)tx->skb->data; in ieee80211_tx_h_unicast_ps_buf()
471 struct ieee80211_local *local = tx->local; in ieee80211_tx_h_unicast_ps_buf()
480 int ac = skb_get_queue_mapping(tx->skb); in ieee80211_tx_h_unicast_ps_buf()
490 if (tx->local->total_ps_buffered >= TOTAL_MAX_TX_BUFFER) in ieee80211_tx_h_unicast_ps_buf()
491 purge_old_ps_buffers(tx->local); in ieee80211_tx_h_unicast_ps_buf()
509 ps_dbg(tx->sdata, in ieee80211_tx_h_unicast_ps_buf()
514 tx->local->total_ps_buffered++; in ieee80211_tx_h_unicast_ps_buf()
517 info->control.vif = &tx->sdata->vif; in ieee80211_tx_h_unicast_ps_buf()
520 skb_queue_tail(&sta->ps_tx_buf[ac], tx->skb); in ieee80211_tx_h_unicast_ps_buf()
536 ps_dbg(tx->sdata, in ieee80211_tx_h_unicast_ps_buf()
545 ieee80211_tx_h_ps_buf(struct ieee80211_tx_data *tx) in ieee80211_tx_h_ps_buf() argument
547 if (unlikely(tx->flags & IEEE80211_TX_PS_BUFFERED)) in ieee80211_tx_h_ps_buf()
550 if (tx->flags & IEEE80211_TX_UNICAST) in ieee80211_tx_h_ps_buf()
551 return ieee80211_tx_h_unicast_ps_buf(tx); in ieee80211_tx_h_ps_buf()
553 return ieee80211_tx_h_multicast_ps_buf(tx); in ieee80211_tx_h_ps_buf()
557 ieee80211_tx_h_check_control_port_protocol(struct ieee80211_tx_data *tx) in ieee80211_tx_h_check_control_port_protocol() argument
559 struct ieee80211_tx_info *info = IEEE80211_SKB_CB(tx->skb); in ieee80211_tx_h_check_control_port_protocol()
561 if (unlikely(tx->sdata->control_port_protocol == tx->skb->protocol)) { in ieee80211_tx_h_check_control_port_protocol()
562 if (tx->sdata->control_port_no_encrypt) in ieee80211_tx_h_check_control_port_protocol()
572 ieee80211_tx_h_select_key(struct ieee80211_tx_data *tx) in ieee80211_tx_h_select_key() argument
575 struct ieee80211_tx_info *info = IEEE80211_SKB_CB(tx->skb); in ieee80211_tx_h_select_key()
576 struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)tx->skb->data; in ieee80211_tx_h_select_key()
579 tx->key = NULL; in ieee80211_tx_h_select_key()
580 else if (tx->sta && in ieee80211_tx_h_select_key()
581 (key = rcu_dereference(tx->sta->ptk[tx->sta->ptk_idx]))) in ieee80211_tx_h_select_key()
582 tx->key = key; in ieee80211_tx_h_select_key()
585 ieee80211_is_robust_mgmt_frame(tx->skb) && in ieee80211_tx_h_select_key()
586 (key = rcu_dereference(tx->sdata->default_mgmt_key))) in ieee80211_tx_h_select_key()
587 tx->key = key; in ieee80211_tx_h_select_key()
589 (key = rcu_dereference(tx->sdata->default_multicast_key))) in ieee80211_tx_h_select_key()
590 tx->key = key; in ieee80211_tx_h_select_key()
592 (key = rcu_dereference(tx->sdata->default_unicast_key))) in ieee80211_tx_h_select_key()
593 tx->key = key; in ieee80211_tx_h_select_key()
595 tx->key = NULL; in ieee80211_tx_h_select_key()
597 if (tx->key) { in ieee80211_tx_h_select_key()
600 tx->key->tx_rx_count++; in ieee80211_tx_h_select_key()
603 switch (tx->key->conf.cipher) { in ieee80211_tx_h_select_key()
608 tx->key = NULL; in ieee80211_tx_h_select_key()
615 !ieee80211_use_mfp(hdr->frame_control, tx->sta, in ieee80211_tx_h_select_key()
616 tx->skb)) in ieee80211_tx_h_select_key()
617 tx->key = NULL; in ieee80211_tx_h_select_key()
619 skip_hw = (tx->key->conf.flags & in ieee80211_tx_h_select_key()
628 tx->key = NULL; in ieee80211_tx_h_select_key()
632 if (unlikely(tx->key && tx->key->flags & KEY_FLAG_TAINTED && in ieee80211_tx_h_select_key()
636 if (!skip_hw && tx->key && in ieee80211_tx_h_select_key()
637 tx->key->flags & KEY_FLAG_UPLOADED_TO_HARDWARE) in ieee80211_tx_h_select_key()
638 info->control.hw_key = &tx->key->conf; in ieee80211_tx_h_select_key()
645 ieee80211_tx_h_rate_ctrl(struct ieee80211_tx_data *tx) in ieee80211_tx_h_rate_ctrl() argument
647 struct ieee80211_tx_info *info = IEEE80211_SKB_CB(tx->skb); in ieee80211_tx_h_rate_ctrl()
648 struct ieee80211_hdr *hdr = (void *)tx->skb->data; in ieee80211_tx_h_rate_ctrl()
657 sband = tx->local->hw.wiphy->bands[info->band]; in ieee80211_tx_h_rate_ctrl()
659 len = min_t(u32, tx->skb->len + FCS_LEN, in ieee80211_tx_h_rate_ctrl()
660 tx->local->hw.wiphy->frag_threshold); in ieee80211_tx_h_rate_ctrl()
663 txrc.hw = &tx->local->hw; in ieee80211_tx_h_rate_ctrl()
665 txrc.bss_conf = &tx->sdata->vif.bss_conf; in ieee80211_tx_h_rate_ctrl()
666 txrc.skb = tx->skb; in ieee80211_tx_h_rate_ctrl()
668 txrc.rate_idx_mask = tx->sdata->rc_rateidx_mask[info->band]; in ieee80211_tx_h_rate_ctrl()
674 if (tx->sdata->rc_has_mcs_mask[info->band]) in ieee80211_tx_h_rate_ctrl()
676 tx->sdata->rc_rateidx_mcs_mask[info->band]; in ieee80211_tx_h_rate_ctrl()
678 txrc.bss = (tx->sdata->vif.type == NL80211_IFTYPE_AP || in ieee80211_tx_h_rate_ctrl()
679 tx->sdata->vif.type == NL80211_IFTYPE_MESH_POINT || in ieee80211_tx_h_rate_ctrl()
680 tx->sdata->vif.type == NL80211_IFTYPE_ADHOC); in ieee80211_tx_h_rate_ctrl()
683 if (len > tx->local->hw.wiphy->rts_threshold) { in ieee80211_tx_h_rate_ctrl()
688 info->control.use_cts_prot = tx->sdata->vif.bss_conf.use_cts_prot; in ieee80211_tx_h_rate_ctrl()
696 if (tx->sdata->vif.bss_conf.use_short_preamble && in ieee80211_tx_h_rate_ctrl()
698 (tx->sta && test_sta_flag(tx->sta, WLAN_STA_SHORT_PREAMBLE)))) in ieee80211_tx_h_rate_ctrl()
703 if (tx->sta) in ieee80211_tx_h_rate_ctrl()
704 assoc = test_sta_flag(tx->sta, WLAN_STA_ASSOC); in ieee80211_tx_h_rate_ctrl()
710 if (WARN(test_bit(SCAN_SW_SCANNING, &tx->local->scanning) && assoc && in ieee80211_tx_h_rate_ctrl()
711 !rate_usable_index_exists(sband, &tx->sta->sta), in ieee80211_tx_h_rate_ctrl()
715 tx->sdata->name, hdr->addr1, in ieee80211_tx_h_rate_ctrl()
723 rate_control_get_rate(tx->sdata, tx->sta, &txrc); in ieee80211_tx_h_rate_ctrl()
725 if (tx->sta && !info->control.skip_table) in ieee80211_tx_h_rate_ctrl()
726 ratetbl = rcu_dereference(tx->sta->sta.rates); in ieee80211_tx_h_rate_ctrl()
739 tx->rate = rate; in ieee80211_tx_h_rate_ctrl()
744 tx->rate = info->control.rates[0]; in ieee80211_tx_h_rate_ctrl()
748 txrc.reported_rate = tx->rate; in ieee80211_tx_h_rate_ctrl()
749 if (tx->sta && ieee80211_is_data(hdr->frame_control)) in ieee80211_tx_h_rate_ctrl()
750 tx->sta->last_tx_rate = txrc.reported_rate; in ieee80211_tx_h_rate_ctrl()
751 } else if (tx->sta) in ieee80211_tx_h_rate_ctrl()
752 tx->sta->last_tx_rate = txrc.reported_rate; in ieee80211_tx_h_rate_ctrl()
779 ieee80211_tx_h_sequence(struct ieee80211_tx_data *tx) in ieee80211_tx_h_sequence() argument
781 struct ieee80211_tx_info *info = IEEE80211_SKB_CB(tx->skb); in ieee80211_tx_h_sequence()
782 struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)tx->skb->data; in ieee80211_tx_h_sequence()
814 hdr->seq_ctrl = cpu_to_le16(tx->sdata->sequence_number); in ieee80211_tx_h_sequence()
815 tx->sdata->sequence_number += 0x10; in ieee80211_tx_h_sequence()
816 if (tx->sta) in ieee80211_tx_h_sequence()
817 tx->sta->tx_msdu[IEEE80211_NUM_TIDS]++; in ieee80211_tx_h_sequence()
826 if (!tx->sta) in ieee80211_tx_h_sequence()
833 tx->sta->tx_msdu[tid]++; in ieee80211_tx_h_sequence()
835 if (!tx->sta->sta.txq[0]) in ieee80211_tx_h_sequence()
836 hdr->seq_ctrl = ieee80211_tx_next_seq(tx->sta, tid); in ieee80211_tx_h_sequence()
841 static int ieee80211_fragment(struct ieee80211_tx_data *tx, in ieee80211_fragment() argument
845 struct ieee80211_local *local = tx->local; in ieee80211_fragment()
865 tx->sdata->encrypt_headroom + in ieee80211_fragment()
870 __skb_queue_tail(&tx->skbs, tmp); in ieee80211_fragment()
873 local->tx_headroom + tx->sdata->encrypt_headroom); in ieee80211_fragment()
902 ieee80211_tx_h_fragment(struct ieee80211_tx_data *tx) in ieee80211_tx_h_fragment() argument
904 struct sk_buff *skb = tx->skb; in ieee80211_tx_h_fragment()
907 int frag_threshold = tx->local->hw.wiphy->frag_threshold; in ieee80211_tx_h_fragment()
912 __skb_queue_tail(&tx->skbs, skb); in ieee80211_tx_h_fragment()
913 tx->skb = NULL; in ieee80211_tx_h_fragment()
918 if (tx->local->ops->set_frag_threshold) in ieee80211_tx_h_fragment()
943 if (ieee80211_fragment(tx, skb, hdrlen, frag_threshold)) in ieee80211_tx_h_fragment()
949 skb_queue_walk(&tx->skbs, skb) { in ieee80211_tx_h_fragment()
955 if (!skb_queue_is_last(&tx->skbs, skb)) { in ieee80211_tx_h_fragment()
977 ieee80211_tx_h_stats(struct ieee80211_tx_data *tx) in ieee80211_tx_h_stats() argument
982 if (!tx->sta) in ieee80211_tx_h_stats()
985 skb_queue_walk(&tx->skbs, skb) { in ieee80211_tx_h_stats()
987 tx->sta->tx_fragments++; in ieee80211_tx_h_stats()
988 tx->sta->tx_bytes[ac] += skb->len; in ieee80211_tx_h_stats()
991 tx->sta->tx_packets[ac]++; in ieee80211_tx_h_stats()
997 ieee80211_tx_h_encrypt(struct ieee80211_tx_data *tx) in ieee80211_tx_h_encrypt() argument
999 if (!tx->key) in ieee80211_tx_h_encrypt()
1002 switch (tx->key->conf.cipher) { in ieee80211_tx_h_encrypt()
1005 return ieee80211_crypto_wep_encrypt(tx); in ieee80211_tx_h_encrypt()
1007 return ieee80211_crypto_tkip_encrypt(tx); in ieee80211_tx_h_encrypt()
1010 tx, IEEE80211_CCMP_MIC_LEN); in ieee80211_tx_h_encrypt()
1013 tx, IEEE80211_CCMP_256_MIC_LEN); in ieee80211_tx_h_encrypt()
1015 return ieee80211_crypto_aes_cmac_encrypt(tx); in ieee80211_tx_h_encrypt()
1017 return ieee80211_crypto_aes_cmac_256_encrypt(tx); in ieee80211_tx_h_encrypt()
1020 return ieee80211_crypto_aes_gmac_encrypt(tx); in ieee80211_tx_h_encrypt()
1023 return ieee80211_crypto_gcmp_encrypt(tx); in ieee80211_tx_h_encrypt()
1025 return ieee80211_crypto_hw_encrypt(tx); in ieee80211_tx_h_encrypt()
1032 ieee80211_tx_h_calculate_duration(struct ieee80211_tx_data *tx) in ieee80211_tx_h_calculate_duration() argument
1039 skb_queue_walk(&tx->skbs, skb) { in ieee80211_tx_h_calculate_duration()
1043 if (!skb_queue_is_last(&tx->skbs, skb)) { in ieee80211_tx_h_calculate_duration()
1044 struct sk_buff *next = skb_queue_next(&tx->skbs, skb); in ieee80211_tx_h_calculate_duration()
1051 ieee80211_duration(tx, skb, group_addr, next_len); in ieee80211_tx_h_calculate_duration()
1059 static bool ieee80211_tx_prep_agg(struct ieee80211_tx_data *tx, in ieee80211_tx_prep_agg() argument
1077 } else if (!tx->sta->sta.txq[tid]) { in ieee80211_tx_prep_agg()
1078 spin_lock(&tx->sta->lock); in ieee80211_tx_prep_agg()
1097 tid_tx = rcu_dereference_protected_tid_tx(tx->sta, tid); in ieee80211_tx_prep_agg()
1106 info->control.vif = &tx->sdata->vif; in ieee80211_tx_prep_agg()
1113 spin_unlock(&tx->sta->lock); in ieee80211_tx_prep_agg()
1116 ieee80211_free_txskb(&tx->local->hw, purge_skb); in ieee80211_tx_prep_agg()
1133 struct ieee80211_tx_data *tx, in ieee80211_tx_prepare() argument
1142 memset(tx, 0, sizeof(*tx)); in ieee80211_tx_prepare()
1143 tx->skb = skb; in ieee80211_tx_prepare()
1144 tx->local = local; in ieee80211_tx_prepare()
1145 tx->sdata = sdata; in ieee80211_tx_prepare()
1146 __skb_queue_head_init(&tx->skbs); in ieee80211_tx_prepare()
1159 tx->sta = sta; in ieee80211_tx_prepare()
1162 tx->sta = rcu_dereference(sdata->u.vlan.sta); in ieee80211_tx_prepare()
1163 if (!tx->sta && sdata->wdev.use_4addr) in ieee80211_tx_prepare()
1167 tx->sdata->control_port_protocol == tx->skb->protocol) { in ieee80211_tx_prepare()
1168 tx->sta = sta_info_get_bss(sdata, hdr->addr1); in ieee80211_tx_prepare()
1170 if (!tx->sta && !is_multicast_ether_addr(hdr->addr1)) in ieee80211_tx_prepare()
1171 tx->sta = sta_info_get(sdata, hdr->addr1); in ieee80211_tx_prepare()
1174 if (tx->sta && ieee80211_is_data_qos(hdr->frame_control) && in ieee80211_tx_prepare()
1183 tid_tx = rcu_dereference(tx->sta->ampdu_mlme.tid_tx[tid]); in ieee80211_tx_prepare()
1187 queued = ieee80211_tx_prep_agg(tx, skb, info, in ieee80211_tx_prepare()
1196 tx->flags &= ~IEEE80211_TX_UNICAST; in ieee80211_tx_prepare()
1199 tx->flags |= IEEE80211_TX_UNICAST; in ieee80211_tx_prepare()
1202 if (!(tx->flags & IEEE80211_TX_UNICAST) || in ieee80211_tx_prepare()
1208 if (!tx->sta) in ieee80211_tx_prepare()
1210 else if (test_and_clear_sta_flag(tx->sta, WLAN_STA_CLEAR_PS_FILT)) in ieee80211_tx_prepare()
1449 static int invoke_tx_handlers(struct ieee80211_tx_data *tx) in invoke_tx_handlers() argument
1451 struct ieee80211_tx_info *info = IEEE80211_SKB_CB(tx->skb); in invoke_tx_handlers()
1456 res = txh(tx); \ in invoke_tx_handlers()
1466 if (!(tx->local->hw.flags & IEEE80211_HW_HAS_RATE_CONTROL)) in invoke_tx_handlers()
1470 __skb_queue_tail(&tx->skbs, tx->skb); in invoke_tx_handlers()
1471 tx->skb = NULL; in invoke_tx_handlers()
1481 if (!(tx->local->hw.flags & IEEE80211_HW_HAS_RATE_CONTROL)) in invoke_tx_handlers()
1487 I802_DEBUG_INC(tx->local->tx_handlers_drop); in invoke_tx_handlers()
1488 if (tx->skb) in invoke_tx_handlers()
1489 ieee80211_free_txskb(&tx->local->hw, tx->skb); in invoke_tx_handlers()
1491 ieee80211_purge_tx_queue(&tx->local->hw, &tx->skbs); in invoke_tx_handlers()
1494 I802_DEBUG_INC(tx->local->tx_handlers_queued); in invoke_tx_handlers()
1507 struct ieee80211_tx_data tx; in ieee80211_tx_prepare_skb() local
1510 if (ieee80211_tx_prepare(sdata, &tx, NULL, skb) == TX_DROP) in ieee80211_tx_prepare_skb()
1517 if (invoke_tx_handlers(&tx)) in ieee80211_tx_prepare_skb()
1521 if (tx.sta) in ieee80211_tx_prepare_skb()
1522 *sta = &tx.sta->sta; in ieee80211_tx_prepare_skb()
1528 skb2 = __skb_dequeue(&tx.skbs); in ieee80211_tx_prepare_skb()
1529 if (WARN_ON(skb2 != skb || !skb_queue_empty(&tx.skbs))) { in ieee80211_tx_prepare_skb()
1531 ieee80211_purge_tx_queue(hw, &tx.skbs); in ieee80211_tx_prepare_skb()
1547 struct ieee80211_tx_data tx; in ieee80211_tx() local
1560 res_prepare = ieee80211_tx_prepare(sdata, &tx, sta, skb); in ieee80211_tx()
1575 if (!invoke_tx_handlers(&tx)) in ieee80211_tx()
1576 result = __ieee80211_tx(local, &tx.skbs, led_len, in ieee80211_tx()
1577 tx.sta, txpending); in ieee80211_tx()
2438 struct ieee80211_tx_data tx = { in ieee80211_build_data_template() local
2457 tx.sta = sta_info_get(sdata, hdr->addr1); in ieee80211_build_data_template()
2458 tx.skb = skb; in ieee80211_build_data_template()
2460 if (ieee80211_tx_h_select_key(&tx) != TX_CONTINUE) { in ieee80211_build_data_template()
3199 struct ieee80211_tx_data tx; in ieee80211_get_buffered_bc() local
3248 if (!ieee80211_tx_prepare(sdata, &tx, NULL, skb)) in ieee80211_get_buffered_bc()
3255 tx.flags |= IEEE80211_TX_PS_BUFFERED; in ieee80211_get_buffered_bc()
3258 if (invoke_tx_handlers(&tx)) in ieee80211_get_buffered_bc()