Lines Matching refs:sta
328 if (tx->sta) in ieee80211_tx_h_check_assoc()
329 assoc = test_sta_flag(tx->sta, WLAN_STA_ASSOC); in ieee80211_tx_h_check_assoc()
363 struct sta_info *sta; in purge_old_ps_buffers() local
387 list_for_each_entry_rcu(sta, &local->sta_list, list) { in purge_old_ps_buffers()
391 skb = skb_dequeue(&sta->ps_tx_buf[ac]); in purge_old_ps_buffers()
392 total += skb_queue_len(&sta->ps_tx_buf[ac]); in purge_old_ps_buffers()
470 static int ieee80211_use_mfp(__le16 fc, struct sta_info *sta, in ieee80211_use_mfp() argument
476 if (sta == NULL || !test_sta_flag(sta, WLAN_STA_MFP)) in ieee80211_use_mfp()
488 struct sta_info *sta = tx->sta; in ieee80211_tx_h_unicast_ps_buf() local
493 if (unlikely(!sta)) in ieee80211_tx_h_unicast_ps_buf()
496 if (unlikely((test_sta_flag(sta, WLAN_STA_PS_STA) || in ieee80211_tx_h_unicast_ps_buf()
497 test_sta_flag(sta, WLAN_STA_PS_DRIVER) || in ieee80211_tx_h_unicast_ps_buf()
498 test_sta_flag(sta, WLAN_STA_PS_DELIVER)) && in ieee80211_tx_h_unicast_ps_buf()
508 ps_dbg(sta->sdata, "STA %pM aid %d: PS buffer for AC %d\n", in ieee80211_tx_h_unicast_ps_buf()
509 sta->sta.addr, sta->sta.aid, ac); in ieee80211_tx_h_unicast_ps_buf()
514 spin_lock(&sta->ps_lock); in ieee80211_tx_h_unicast_ps_buf()
520 if (!test_sta_flag(sta, WLAN_STA_PS_STA) && in ieee80211_tx_h_unicast_ps_buf()
521 !test_sta_flag(sta, WLAN_STA_PS_DRIVER) && in ieee80211_tx_h_unicast_ps_buf()
522 !test_sta_flag(sta, WLAN_STA_PS_DELIVER)) { in ieee80211_tx_h_unicast_ps_buf()
523 spin_unlock(&sta->ps_lock); in ieee80211_tx_h_unicast_ps_buf()
527 if (skb_queue_len(&sta->ps_tx_buf[ac]) >= STA_MAX_TX_BUFFER) { in ieee80211_tx_h_unicast_ps_buf()
528 struct sk_buff *old = skb_dequeue(&sta->ps_tx_buf[ac]); in ieee80211_tx_h_unicast_ps_buf()
531 sta->sta.addr, ac); in ieee80211_tx_h_unicast_ps_buf()
540 skb_queue_tail(&sta->ps_tx_buf[ac], tx->skb); in ieee80211_tx_h_unicast_ps_buf()
541 spin_unlock(&sta->ps_lock); in ieee80211_tx_h_unicast_ps_buf()
552 sta_info_recalc_tim(sta); in ieee80211_tx_h_unicast_ps_buf()
555 } else if (unlikely(test_sta_flag(sta, WLAN_STA_PS_STA))) { in ieee80211_tx_h_unicast_ps_buf()
558 sta->sta.addr); in ieee80211_tx_h_unicast_ps_buf()
603 if (tx->sta && in ieee80211_tx_h_select_key()
604 (key = rcu_dereference(tx->sta->ptk[tx->sta->ptk_idx]))) in ieee80211_tx_h_select_key()
640 !ieee80211_use_mfp(hdr->frame_control, tx->sta, in ieee80211_tx_h_select_key()
665 } else if (!ieee80211_is_mgmt(hdr->frame_control) && tx->sta && in ieee80211_tx_h_select_key()
666 test_sta_flag(tx->sta, WLAN_STA_USES_ENCRYPTION)) { in ieee80211_tx_h_select_key()
724 (tx->sta && test_sta_flag(tx->sta, WLAN_STA_SHORT_PREAMBLE)))) in ieee80211_tx_h_rate_ctrl()
733 if (tx->sta) in ieee80211_tx_h_rate_ctrl()
734 assoc = test_sta_flag(tx->sta, WLAN_STA_ASSOC); in ieee80211_tx_h_rate_ctrl()
741 !rate_usable_index_exists(sband, &tx->sta->sta), in ieee80211_tx_h_rate_ctrl()
753 rate_control_get_rate(tx->sdata, tx->sta, &txrc); in ieee80211_tx_h_rate_ctrl()
755 if (tx->sta && !info->control.skip_table) in ieee80211_tx_h_rate_ctrl()
756 ratetbl = rcu_dereference(tx->sta->sta.rates); in ieee80211_tx_h_rate_ctrl()
779 if (tx->sta && ieee80211_is_data(hdr->frame_control)) in ieee80211_tx_h_rate_ctrl()
780 tx->sta->tx_stats.last_rate = txrc.reported_rate; in ieee80211_tx_h_rate_ctrl()
781 } else if (tx->sta) in ieee80211_tx_h_rate_ctrl()
782 tx->sta->tx_stats.last_rate = txrc.reported_rate; in ieee80211_tx_h_rate_ctrl()
797 static __le16 ieee80211_tx_next_seq(struct sta_info *sta, int tid) in ieee80211_tx_next_seq() argument
799 u16 *seq = &sta->tid_seq[tid]; in ieee80211_tx_next_seq()
848 if (tx->sta) in ieee80211_tx_h_sequence()
849 tx->sta->tx_stats.msdu[IEEE80211_NUM_TIDS]++; in ieee80211_tx_h_sequence()
858 if (!tx->sta) in ieee80211_tx_h_sequence()
863 tx->sta->tx_stats.msdu[tid]++; in ieee80211_tx_h_sequence()
865 hdr->seq_ctrl = ieee80211_tx_next_seq(tx->sta, tid); in ieee80211_tx_h_sequence()
1011 if (!tx->sta) in ieee80211_tx_h_stats()
1016 tx->sta->tx_stats.bytes[ac] += skb->len; in ieee80211_tx_h_stats()
1019 tx->sta->tx_stats.packets[ac]++; in ieee80211_tx_h_stats()
1105 } else if (!tx->sta->sta.txq[tid]) { in ieee80211_tx_prep_agg()
1106 spin_lock(&tx->sta->lock); in ieee80211_tx_prep_agg()
1125 tid_tx = rcu_dereference_protected_tid_tx(tx->sta, tid); in ieee80211_tx_prep_agg()
1135 clear_sta_flag(tx->sta, WLAN_STA_SP); in ieee80211_tx_prep_agg()
1136 ps_dbg(tx->sta->sdata, in ieee80211_tx_prep_agg()
1138 tx->sta->sta.addr, tx->sta->sta.aid); in ieee80211_tx_prep_agg()
1147 spin_unlock(&tx->sta->lock); in ieee80211_tx_prep_agg()
1168 struct sta_info *sta, struct sk_buff *skb) in ieee80211_tx_prepare() argument
1190 if (likely(sta)) { in ieee80211_tx_prepare()
1191 if (!IS_ERR(sta)) in ieee80211_tx_prepare()
1192 tx->sta = sta; in ieee80211_tx_prepare()
1195 tx->sta = rcu_dereference(sdata->u.vlan.sta); in ieee80211_tx_prepare()
1196 if (!tx->sta && sdata->wdev.use_4addr) in ieee80211_tx_prepare()
1201 tx->sta = sta_info_get_bss(sdata, hdr->addr1); in ieee80211_tx_prepare()
1203 if (!tx->sta && !is_multicast_ether_addr(hdr->addr1)) in ieee80211_tx_prepare()
1204 tx->sta = sta_info_get(sdata, hdr->addr1); in ieee80211_tx_prepare()
1207 if (tx->sta && ieee80211_is_data_qos(hdr->frame_control) && in ieee80211_tx_prepare()
1215 tid_tx = rcu_dereference(tx->sta->ampdu_mlme.tid_tx[tid]); in ieee80211_tx_prepare()
1240 if (!tx->sta) in ieee80211_tx_prepare()
1242 else if (test_and_clear_sta_flag(tx->sta, WLAN_STA_CLEAR_PS_FILT)) { in ieee80211_tx_prepare()
1244 ieee80211_check_fast_xmit(tx->sta); in ieee80211_tx_prepare()
1254 struct sta_info *sta, in ieee80211_get_txq() argument
1270 sta && sta->uploaded) { in ieee80211_get_txq()
1275 txq = sta->sta.txq[IEEE80211_NUM_TIDS]; in ieee80211_get_txq()
1277 } else if (sta) { in ieee80211_get_txq()
1280 if (!sta->uploaded) in ieee80211_get_txq()
1283 txq = sta->sta.txq[tid]; in ieee80211_get_txq()
1360 if (txqi->txq.sta) { in fq_tin_dequeue_func()
1361 struct sta_info *sta = container_of(txqi->txq.sta, in fq_tin_dequeue_func() local
1362 struct sta_info, sta); in fq_tin_dequeue_func()
1363 cparams = &sta->cparams; in fq_tin_dequeue_func()
1458 struct sta_info *sta, in ieee80211_txq_init() argument
1470 if (!sta) { in ieee80211_txq_init()
1494 txqi->txq.sta = &sta->sta; in ieee80211_txq_init()
1496 sta->sta.txq[tid] = &txqi->txq; in ieee80211_txq_init()
1604 struct sta_info *sta, in ieee80211_queue_skb() argument
1619 txqi = ieee80211_get_txq(local, vif, sta, skb); in ieee80211_queue_skb()
1633 struct sta_info *sta, in ieee80211_tx_frags() argument
1695 control.sta = sta ? &sta->sta : NULL; in ieee80211_tx_frags()
1709 struct sta_info *sta, bool txpending) in __ieee80211_tx() argument
1725 if (sta && !sta->uploaded) in __ieee80211_tx()
1726 sta = NULL; in __ieee80211_tx()
1754 result = ieee80211_tx_frags(local, vif, sta, skbs, txpending); in __ieee80211_tx()
1858 int band, struct ieee80211_sta **sta) in ieee80211_tx_prepare_skb() argument
1875 if (sta) { in ieee80211_tx_prepare_skb()
1876 if (tx.sta) in ieee80211_tx_prepare_skb()
1877 *sta = &tx.sta->sta; in ieee80211_tx_prepare_skb()
1879 *sta = NULL; in ieee80211_tx_prepare_skb()
1898 struct sta_info *sta, struct sk_buff *skb, in ieee80211_tx() argument
1915 res_prepare = ieee80211_tx_prepare(sdata, &tx, sta, skb); in ieee80211_tx()
1933 if (ieee80211_queue_skb(local, sdata, tx.sta, tx.skb)) in ieee80211_tx()
1938 tx.sta, txpending); in ieee80211_tx()
1989 struct sta_info *sta, struct sk_buff *skb) in ieee80211_xmit() argument
2030 ieee80211_tx(sdata, sta, skb, false); in ieee80211_xmit()
2384 struct sta_info *sta; in ieee80211_lookup_ra_sta() local
2388 sta = rcu_dereference(sdata->u.vlan.sta); in ieee80211_lookup_ra_sta()
2389 if (sta) { in ieee80211_lookup_ra_sta()
2390 *sta_out = sta; in ieee80211_lookup_ra_sta()
2403 sta = sta_info_get_bss(sdata, skb->data); in ieee80211_lookup_ra_sta()
2406 sta = sta_info_get(sdata, sdata->u.wds.remote_addr); in ieee80211_lookup_ra_sta()
2416 sta = sta_info_get(sdata, skb->data); in ieee80211_lookup_ra_sta()
2417 if (sta && test_sta_flag(sta, WLAN_STA_TDLS_PEER)) { in ieee80211_lookup_ra_sta()
2418 if (test_sta_flag(sta, in ieee80211_lookup_ra_sta()
2420 *sta_out = sta; in ieee80211_lookup_ra_sta()
2437 sta = sta_info_get(sdata, sdata->u.mgd.bssid); in ieee80211_lookup_ra_sta()
2438 if (!sta) in ieee80211_lookup_ra_sta()
2445 *sta_out = sta ?: ERR_PTR(-ENOENT); in ieee80211_lookup_ra_sta()
2509 struct sta_info *sta, u32 ctrl_flags, in ieee80211_build_hdr() argument
2531 if (IS_ERR(sta)) in ieee80211_build_hdr()
2532 sta = NULL; in ieee80211_build_hdr()
2549 memcpy(hdr.addr1, sta->sta.addr, ETH_ALEN); in ieee80211_build_hdr()
2554 authorized = test_sta_flag(sta, WLAN_STA_AUTHORIZED); in ieee80211_build_hdr()
2555 wme_sta = sta->sta.wme; in ieee80211_build_hdr()
2680 tdls_peer = test_sta_flag(sta, WLAN_STA_TDLS_PEER); in ieee80211_build_hdr()
2747 if (sta) { in ieee80211_build_hdr()
2748 authorized = test_sta_flag(sta, WLAN_STA_AUTHORIZED); in ieee80211_build_hdr()
2749 wme_sta = sta->sta.wme; in ieee80211_build_hdr()
2907 void ieee80211_check_fast_xmit(struct sta_info *sta) in ieee80211_check_fast_xmit() argument
2910 struct ieee80211_local *local = sta->local; in ieee80211_check_fast_xmit()
2911 struct ieee80211_sub_if_data *sdata = sta->sdata; in ieee80211_check_fast_xmit()
2931 spin_lock_bh(&sta->lock); in ieee80211_check_fast_xmit()
2937 if (!test_sta_flag(sta, WLAN_STA_AUTHORIZED)) in ieee80211_check_fast_xmit()
2940 if (test_sta_flag(sta, WLAN_STA_PS_STA) || in ieee80211_check_fast_xmit()
2941 test_sta_flag(sta, WLAN_STA_PS_DRIVER) || in ieee80211_check_fast_xmit()
2942 test_sta_flag(sta, WLAN_STA_PS_DELIVER) || in ieee80211_check_fast_xmit()
2943 test_sta_flag(sta, WLAN_STA_CLEAR_PS_FILT)) in ieee80211_check_fast_xmit()
2974 if (test_sta_flag(sta, WLAN_STA_TDLS_PEER)) { in ieee80211_check_fast_xmit()
3007 memcpy(hdr->addr1, sta->sta.addr, ETH_ALEN); in ieee80211_check_fast_xmit()
3028 if (sta->sta.wme) { in ieee80211_check_fast_xmit()
3038 build.key = rcu_access_pointer(sta->ptk[sta->ptk_idx]); in ieee80211_check_fast_xmit()
3127 old = rcu_dereference_protected(sta->fast_tx, in ieee80211_check_fast_xmit()
3128 lockdep_is_held(&sta->lock)); in ieee80211_check_fast_xmit()
3129 rcu_assign_pointer(sta->fast_tx, fast_tx); in ieee80211_check_fast_xmit()
3132 spin_unlock_bh(&sta->lock); in ieee80211_check_fast_xmit()
3137 struct sta_info *sta; in ieee80211_check_fast_xmit_all() local
3140 list_for_each_entry_rcu(sta, &local->sta_list, list) in ieee80211_check_fast_xmit_all()
3141 ieee80211_check_fast_xmit(sta); in ieee80211_check_fast_xmit_all()
3148 struct sta_info *sta; in ieee80211_check_fast_xmit_iface() local
3152 list_for_each_entry_rcu(sta, &local->sta_list, list) { in ieee80211_check_fast_xmit_iface()
3153 if (sdata != sta->sdata && in ieee80211_check_fast_xmit_iface()
3154 (!sta->sdata->bss || sta->sdata->bss != sdata->bss)) in ieee80211_check_fast_xmit_iface()
3156 ieee80211_check_fast_xmit(sta); in ieee80211_check_fast_xmit_iface()
3162 void ieee80211_clear_fast_xmit(struct sta_info *sta) in ieee80211_clear_fast_xmit() argument
3166 spin_lock_bh(&sta->lock); in ieee80211_clear_fast_xmit()
3167 fast_tx = rcu_dereference_protected(sta->fast_tx, in ieee80211_clear_fast_xmit()
3168 lockdep_is_held(&sta->lock)); in ieee80211_clear_fast_xmit()
3169 RCU_INIT_POINTER(sta->fast_tx, NULL); in ieee80211_clear_fast_xmit()
3170 spin_unlock_bh(&sta->lock); in ieee80211_clear_fast_xmit()
3258 struct sta_info *sta, in ieee80211_amsdu_aggregate() argument
3267 struct ieee80211_txq *txq = sta->sta.txq[tid]; in ieee80211_amsdu_aggregate()
3271 u8 max_subframes = sta->sta.max_amsdu_subframes; in ieee80211_amsdu_aggregate()
3273 int max_amsdu_len = sta->sta.max_amsdu_len; in ieee80211_amsdu_aggregate()
3296 if (sta->sta.max_rc_amsdu_len) in ieee80211_amsdu_aggregate()
3298 sta->sta.max_rc_amsdu_len); in ieee80211_amsdu_aggregate()
3300 if (sta->sta.max_tid_amsdu_len[tid]) in ieee80211_amsdu_aggregate()
3302 sta->sta.max_tid_amsdu_len[tid]); in ieee80211_amsdu_aggregate()
3395 struct sta_info *sta, u8 pn_offs, in ieee80211_xmit_fast_finish() argument
3410 hdr->seq_ctrl = ieee80211_tx_next_seq(sta, tid); in ieee80211_xmit_fast_finish()
3418 sta->tx_stats.msdu[tid] += in ieee80211_xmit_fast_finish()
3421 sta->tx_stats.msdu[tid]++; in ieee80211_xmit_fast_finish()
3428 sta->tx_stats.bytes[skb_get_queue_mapping(skb)] += skb->len; in ieee80211_xmit_fast_finish()
3429 sta->tx_stats.packets[skb_get_queue_mapping(skb)]++; in ieee80211_xmit_fast_finish()
3454 struct sta_info *sta, in ieee80211_xmit_fast() argument
3484 tid_tx = rcu_dereference(sta->ampdu_mlme.tid_tx[tid]); in ieee80211_xmit_fast()
3506 ieee80211_amsdu_aggregate(sdata, sta, fast_tx, skb)) in ieee80211_xmit_fast()
3551 tx.sta = sta; in ieee80211_xmit_fast()
3567 if (ieee80211_queue_skb(local, sdata, sta, skb)) in ieee80211_xmit_fast()
3570 ieee80211_xmit_fast_finish(sdata, sta, fast_tx->pn_offs, in ieee80211_xmit_fast()
3578 ieee80211_tx_frags(local, &sdata->vif, sta, &tx.skbs, false); in ieee80211_xmit_fast()
3633 if (txq->sta) { in ieee80211_tx_dequeue()
3634 tx.sta = container_of(txq->sta, struct sta_info, sta); in ieee80211_tx_dequeue()
3644 !test_sta_flag(tx.sta, WLAN_STA_AUTHORIZED) && in ieee80211_tx_dequeue()
3674 struct sta_info *sta = container_of(txq->sta, struct sta_info, in ieee80211_tx_dequeue() local
3675 sta); in ieee80211_tx_dequeue()
3682 ieee80211_xmit_fast_finish(sta->sdata, sta, pn_offs, in ieee80211_tx_dequeue()
3740 airtime = ieee80211_calc_expected_tx_airtime(hw, vif, txq->sta, in ieee80211_tx_dequeue()
3744 ieee80211_sta_update_pending_airtime(local, tx.sta, in ieee80211_tx_dequeue()
3786 if (txqi->txq.sta) { in ieee80211_next_txq()
3787 struct sta_info *sta = container_of(txqi->txq.sta, in ieee80211_next_txq() local
3788 struct sta_info, sta); in ieee80211_next_txq()
3790 s64 deficit = sta->airtime[txqi->txq.ac].deficit; in ieee80211_next_txq()
3796 sta->airtime[txqi->txq.ac].deficit += in ieee80211_next_txq()
3797 sta->airtime_weight; in ieee80211_next_txq()
3839 if (txqi->txq.sta && in __ieee80211_schedule_txq()
3856 struct sta_info *sta; in ieee80211_txq_airtime_check() local
3862 if (!txq->sta) in ieee80211_txq_airtime_check()
3865 sta = container_of(txq->sta, struct sta_info, sta); in ieee80211_txq_airtime_check()
3866 if (atomic_read(&sta->airtime[txq->ac].aql_tx_pending) < in ieee80211_txq_airtime_check()
3867 sta->airtime[txq->ac].aql_limit_low) in ieee80211_txq_airtime_check()
3872 atomic_read(&sta->airtime[txq->ac].aql_tx_pending) < in ieee80211_txq_airtime_check()
3873 sta->airtime[txq->ac].aql_limit_high) in ieee80211_txq_airtime_check()
3885 struct sta_info *sta; in ieee80211_txq_may_transmit() local
3890 if (!txqi->txq.sta) in ieee80211_txq_may_transmit()
3901 if (!iter->txq.sta) { in ieee80211_txq_may_transmit()
3906 sta = container_of(iter->txq.sta, struct sta_info, sta); in ieee80211_txq_may_transmit()
3907 if (sta->airtime[ac].deficit < 0) in ieee80211_txq_may_transmit()
3908 sta->airtime[ac].deficit += sta->airtime_weight; in ieee80211_txq_may_transmit()
3912 sta = container_of(txqi->txq.sta, struct sta_info, sta); in ieee80211_txq_may_transmit()
3913 if (sta->airtime[ac].deficit >= 0) in ieee80211_txq_may_transmit()
3916 sta->airtime[ac].deficit += sta->airtime_weight; in ieee80211_txq_may_transmit()
3948 struct sta_info *sta; in __ieee80211_subif_start_xmit() local
3958 if (ieee80211_lookup_ra_sta(sdata, skb, &sta)) in __ieee80211_subif_start_xmit()
3961 if (IS_ERR(sta)) in __ieee80211_subif_start_xmit()
3962 sta = NULL; in __ieee80211_subif_start_xmit()
3965 u16 queue = __ieee80211_select_queue(sdata, sta, skb); in __ieee80211_subif_start_xmit()
3970 if (sta) { in __ieee80211_subif_start_xmit()
3975 fast_tx = rcu_dereference(sta->fast_tx); in __ieee80211_subif_start_xmit()
3978 ieee80211_xmit_fast(sdata, sta, fast_tx, skb)) in __ieee80211_subif_start_xmit()
4018 sta, ctrl_flags, cookie); in __ieee80211_subif_start_xmit()
4026 ieee80211_xmit(sdata, sta, skb); in __ieee80211_subif_start_xmit()
4035 static int ieee80211_change_da(struct sk_buff *skb, struct sta_info *sta) in ieee80211_change_da() argument
4045 ether_addr_copy(eth->h_dest, sta->sta.addr); in ieee80211_change_da()
4063 if (sdata->u.vlan.sta) in ieee80211_multicast_to_unicast()
4100 struct sta_info *sta, *first = NULL; in ieee80211_convert_to_unicast() local
4105 list_for_each_entry_rcu(sta, &local->sta_list, list) { in ieee80211_convert_to_unicast()
4106 if (sdata != sta->sdata) in ieee80211_convert_to_unicast()
4109 if (unlikely(ether_addr_equal(eth->h_source, sta->sta.addr))) in ieee80211_convert_to_unicast()
4113 first = sta; in ieee80211_convert_to_unicast()
4119 if (unlikely(ieee80211_change_da(cloned_skb, sta))) { in ieee80211_convert_to_unicast()
4170 struct sta_info *sta, in ieee80211_tx_8023() argument
4180 if (ieee80211_queue_skb(local, sdata, sta, skb)) in ieee80211_tx_8023()
4199 if (sta && sta->uploaded) in ieee80211_tx_8023()
4200 pubsta = &sta->sta; in ieee80211_tx_8023()
4202 control.sta = pubsta; in ieee80211_tx_8023()
4210 struct net_device *dev, struct sta_info *sta, in ieee80211_8023_xmit() argument
4219 u16 queue = __ieee80211_select_queue(sdata, sta, skb); in ieee80211_8023_xmit()
4231 tid_tx = rcu_dereference(sta->ampdu_mlme.tid_tx[tid]); in ieee80211_8023_xmit()
4253 sta->tx_stats.bytes[skb_get_queue_mapping(skb)] += skb->len; in ieee80211_8023_xmit()
4254 sta->tx_stats.packets[skb_get_queue_mapping(skb)]++; in ieee80211_8023_xmit()
4266 ieee80211_tx_8023(sdata, skb, skb->len, sta, false); in ieee80211_8023_xmit()
4280 struct sta_info *sta; in ieee80211_subif_start_xmit_8023() local
4290 if (ieee80211_lookup_ra_sta(sdata, skb, &sta)) { in ieee80211_subif_start_xmit_8023()
4295 if (unlikely(IS_ERR_OR_NULL(sta) || !sta->uploaded || in ieee80211_subif_start_xmit_8023()
4296 !test_sta_flag(sta, WLAN_STA_AUTHORIZED) || in ieee80211_subif_start_xmit_8023()
4299 else if ((key = rcu_dereference(sta->ptk[sta->ptk_idx])) && in ieee80211_subif_start_xmit_8023()
4305 ieee80211_8023_xmit(sdata, dev, sta, key, skb); in ieee80211_subif_start_xmit_8023()
4324 struct sta_info *sta; in ieee80211_build_data_template() local
4328 if (ieee80211_lookup_ra_sta(sdata, skb, &sta)) { in ieee80211_build_data_template()
4334 skb = ieee80211_build_hdr(sdata, skb, info_flags, sta, 0, NULL); in ieee80211_build_data_template()
4339 tx.sta = sta_info_get(sdata, hdr->addr1); in ieee80211_build_data_template()
4378 struct sta_info *sta; in ieee80211_tx_pending_skb() local
4394 if (ieee80211_lookup_ra_sta(sdata, skb, &sta)) { in ieee80211_tx_pending_skb()
4399 if (IS_ERR(sta) || (sta && !sta->uploaded)) in ieee80211_tx_pending_skb()
4400 sta = NULL; in ieee80211_tx_pending_skb()
4402 result = ieee80211_tx_8023(sdata, skb, skb->len, sta, true); in ieee80211_tx_pending_skb()
4410 sta = sta_info_get(sdata, hdr->addr1); in ieee80211_tx_pending_skb()
4412 result = __ieee80211_tx(local, &skbs, skb->len, sta, true); in ieee80211_tx_pending_skb()
5133 struct sta_info *sta; in ieee80211_nullfunc_get() local
5136 sta = sta_info_get(sdata, ifmgd->bssid); in ieee80211_nullfunc_get()
5137 qos = sta && sta->sta.wme; in ieee80211_nullfunc_get()
5318 struct sta_info *sta = container_of(pubsta, struct sta_info, sta); in ieee80211_reserve_tid() local
5319 struct ieee80211_sub_if_data *sdata = sta->sdata; in ieee80211_reserve_tid()
5340 if (sta->reserved_tid == tid) { in ieee80211_reserve_tid()
5345 if (sta->reserved_tid != IEEE80211_TID_UNRESERVED) { in ieee80211_reserve_tid()
5358 set_sta_flag(sta, WLAN_STA_BLOCK_BA); in ieee80211_reserve_tid()
5359 __ieee80211_stop_tx_ba_session(sta, tid, in ieee80211_reserve_tid()
5366 sta->reserved_tid = tid; in ieee80211_reserve_tid()
5372 clear_sta_flag(sta, WLAN_STA_BLOCK_BA); in ieee80211_reserve_tid()
5382 struct sta_info *sta = container_of(pubsta, struct sta_info, sta); in ieee80211_unreserve_tid() local
5383 struct ieee80211_sub_if_data *sdata = sta->sdata; in ieee80211_unreserve_tid()
5398 if (tid != sta->reserved_tid) { in ieee80211_unreserve_tid()
5403 sta->reserved_tid = IEEE80211_TID_UNRESERVED; in ieee80211_unreserve_tid()