Lines Matching refs:sdata
54 chanctx_conf = rcu_dereference(tx->sdata->vif.chanctx_conf); 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()
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()
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()
314 sdata_info(tx->sdata, 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()
342 struct ieee80211_sub_if_data *sdata; in purge_old_ps_buffers() local
345 list_for_each_entry_rcu(sdata, &local->interfaces, list) { in purge_old_ps_buffers()
348 if (sdata->vif.type == NL80211_IFTYPE_AP) in purge_old_ps_buffers()
349 ps = &sdata->u.ap.ps; in purge_old_ps_buffers()
350 else if (ieee80211_vif_is_mesh(&sdata->vif)) in purge_old_ps_buffers()
351 ps = &sdata->u.mesh.ps; in purge_old_ps_buffers()
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()
422 info->hw_queue = tx->sdata->vif.cab_queue; in ieee80211_tx_h_multicast_ps_buf()
439 ps_dbg(tx->sdata, in ieee80211_tx_h_multicast_ps_buf()
488 ps_dbg(sta->sdata, "STA %pM aid %d: PS buffer for AC %d\n", in ieee80211_tx_h_unicast_ps_buf()
509 ps_dbg(tx->sdata, in ieee80211_tx_h_unicast_ps_buf()
517 info->control.vif = &tx->sdata->vif; in ieee80211_tx_h_unicast_ps_buf()
536 ps_dbg(tx->sdata, in ieee80211_tx_h_unicast_ps_buf()
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()
586 (key = rcu_dereference(tx->sdata->default_mgmt_key))) in ieee80211_tx_h_select_key()
589 (key = rcu_dereference(tx->sdata->default_multicast_key))) in ieee80211_tx_h_select_key()
592 (key = rcu_dereference(tx->sdata->default_unicast_key))) in ieee80211_tx_h_select_key()
665 txrc.bss_conf = &tx->sdata->vif.bss_conf; 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()
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()
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()
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()
865 tx->sdata->encrypt_headroom + in ieee80211_fragment()
873 local->tx_headroom + tx->sdata->encrypt_headroom); in ieee80211_fragment()
1106 info->control.vif = &tx->sdata->vif; in ieee80211_tx_prep_agg()
1132 ieee80211_tx_prepare(struct ieee80211_sub_if_data *sdata, in ieee80211_tx_prepare() argument
1136 struct ieee80211_local *local = sdata->local; in ieee80211_tx_prepare()
1145 tx->sdata = sdata; in ieee80211_tx_prepare()
1161 if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) { 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()
1171 tx->sta = sta_info_get(sdata, hdr->addr1); in ieee80211_tx_prepare()
1224 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); in ieee80211_drv_tx() local
1252 atomic_inc(&sdata->txqs_len[ac]); in ieee80211_drv_tx()
1253 if (atomic_read(&sdata->txqs_len[ac]) >= local->hw.txq_ac_max_pending) in ieee80211_drv_tx()
1254 netif_stop_subqueue(sdata->dev, ac); in ieee80211_drv_tx()
1269 struct ieee80211_sub_if_data *sdata = vif_to_sdata(txq->vif); in ieee80211_tx_dequeue() local
1284 atomic_dec(&sdata->txqs_len[ac]); in ieee80211_tx_dequeue()
1285 if (__netif_subqueue_stopped(sdata->dev, ac)) in ieee80211_tx_dequeue()
1286 ieee80211_propagate_queue_wake(local, sdata->vif.hw_queue[ac]); in ieee80211_tx_dequeue()
1387 struct ieee80211_sub_if_data *sdata; in __ieee80211_tx() local
1400 sdata = vif_to_sdata(info->control.vif); in __ieee80211_tx()
1409 switch (sdata->vif.type) { in __ieee80211_tx()
1411 if (sdata->u.mntr_flags & MONITOR_FLAG_ACTIVE) { in __ieee80211_tx()
1412 vif = &sdata->vif; in __ieee80211_tx()
1415 sdata = rcu_dereference(local->monitor_sdata); in __ieee80211_tx()
1416 if (sdata) { in __ieee80211_tx()
1417 vif = &sdata->vif; in __ieee80211_tx()
1427 sdata = container_of(sdata->bss, in __ieee80211_tx()
1431 vif = &sdata->vif; in __ieee80211_tx()
1505 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); in ieee80211_tx_prepare_skb() local
1510 if (ieee80211_tx_prepare(sdata, &tx, NULL, skb) == TX_DROP) in ieee80211_tx_prepare_skb()
1542 static bool ieee80211_tx(struct ieee80211_sub_if_data *sdata, in ieee80211_tx() argument
1546 struct ieee80211_local *local = sdata->local; in ieee80211_tx()
1560 res_prepare = ieee80211_tx_prepare(sdata, &tx, sta, skb); in ieee80211_tx()
1573 sdata->vif.hw_queue[skb_get_queue_mapping(skb)]; in ieee80211_tx()
1584 static int ieee80211_skb_resize(struct ieee80211_sub_if_data *sdata, in ieee80211_skb_resize() argument
1588 struct ieee80211_local *local = sdata->local; in ieee80211_skb_resize()
1591 if (may_encrypt && sdata->crypto_tx_tailroom_needed_cnt) { in ieee80211_skb_resize()
1600 sdata->crypto_tx_tailroom_needed_cnt)) in ieee80211_skb_resize()
1616 void ieee80211_xmit(struct ieee80211_sub_if_data *sdata, in ieee80211_xmit() argument
1619 struct ieee80211_local *local = sdata->local; in ieee80211_xmit()
1629 headroom += sdata->encrypt_headroom; in ieee80211_xmit()
1633 if (ieee80211_skb_resize(sdata, skb, headroom, may_encrypt)) { in ieee80211_xmit()
1639 info->control.vif = &sdata->vif; in ieee80211_xmit()
1641 if (ieee80211_vif_is_mesh(&sdata->vif)) { in ieee80211_xmit()
1644 if (mesh_nexthop_resolve(sdata, skb)) in ieee80211_xmit()
1647 ieee80211_mps_set_frame_flags(sdata, NULL, hdr); in ieee80211_xmit()
1651 ieee80211_set_qos_hdr(sdata, skb); in ieee80211_xmit()
1652 ieee80211_tx(sdata, sta, skb, false); in ieee80211_xmit()
1747 struct ieee80211_sub_if_data *tmp_sdata, *sdata; in ieee80211_monitor_start_xmit() local
1822 sdata = IEEE80211_DEV_TO_SUB_IF(dev); in ieee80211_monitor_start_xmit()
1832 sdata = tmp_sdata; in ieee80211_monitor_start_xmit()
1837 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); in ieee80211_monitor_start_xmit()
1869 sdata->vif.type)) in ieee80211_monitor_start_xmit()
1873 ieee80211_xmit(sdata, NULL, skb); in ieee80211_monitor_start_xmit()
1894 static int ieee80211_lookup_ra_sta(struct ieee80211_sub_if_data *sdata, in ieee80211_lookup_ra_sta() argument
1900 switch (sdata->vif.type) { in ieee80211_lookup_ra_sta()
1902 sta = rcu_dereference(sdata->u.vlan.sta); in ieee80211_lookup_ra_sta()
1906 } else if (sdata->wdev.use_4addr) { in ieee80211_lookup_ra_sta()
1917 sta = sta_info_get_bss(sdata, skb->data); in ieee80211_lookup_ra_sta()
1920 sta = sta_info_get(sdata, sdata->u.wds.remote_addr); in ieee80211_lookup_ra_sta()
1929 if (sdata->wdev.wiphy->flags & WIPHY_FLAG_SUPPORTS_TDLS) { in ieee80211_lookup_ra_sta()
1930 sta = sta_info_get(sdata, skb->data); in ieee80211_lookup_ra_sta()
1958 sta = sta_info_get(sdata, sdata->u.mgd.bssid); in ieee80211_lookup_ra_sta()
1988 static struct sk_buff *ieee80211_build_hdr(struct ieee80211_sub_if_data *sdata, in ieee80211_build_hdr() argument
1992 struct ieee80211_local *local = sdata->local; in ieee80211_build_hdr()
2020 switch (sdata->vif.type) { in ieee80211_build_hdr()
2022 if (sdata->wdev.use_4addr) { in ieee80211_build_hdr()
2026 memcpy(hdr.addr2, sdata->vif.addr, ETH_ALEN); in ieee80211_build_hdr()
2033 ap_sdata = container_of(sdata->bss, struct ieee80211_sub_if_data, in ieee80211_build_hdr()
2041 if (sdata->wdev.use_4addr) in ieee80211_build_hdr()
2045 if (sdata->vif.type == NL80211_IFTYPE_AP) in ieee80211_build_hdr()
2046 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); in ieee80211_build_hdr()
2054 memcpy(hdr.addr2, sdata->vif.addr, ETH_ALEN); in ieee80211_build_hdr()
2062 memcpy(hdr.addr1, sdata->u.wds.remote_addr, ETH_ALEN); in ieee80211_build_hdr()
2063 memcpy(hdr.addr2, sdata->vif.addr, ETH_ALEN); in ieee80211_build_hdr()
2079 mpath = mesh_path_lookup(sdata, skb->data); in ieee80211_build_hdr()
2090 mppath = mpp_path_lookup(sdata, skb->data); in ieee80211_build_hdr()
2093 mesh_path_del(mpath->sdata, mpath->dst); in ieee80211_build_hdr()
2102 if (ether_addr_equal(sdata->vif.addr, skb->data + ETH_ALEN) && in ieee80211_build_hdr()
2106 meshhdrlen = ieee80211_new_mesh_header(sdata, &mesh_hdr, in ieee80211_build_hdr()
2123 mesh_da, sdata->vif.addr); in ieee80211_build_hdr()
2127 sdata, &mesh_hdr, in ieee80211_build_hdr()
2132 sdata, &mesh_hdr, skb->data, in ieee80211_build_hdr()
2136 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); in ieee80211_build_hdr()
2152 memcpy(hdr.addr3, sdata->u.mgd.bssid, ETH_ALEN); in ieee80211_build_hdr()
2154 } else if (sdata->u.mgd.use_4addr && in ieee80211_build_hdr()
2155 cpu_to_be16(ethertype) != sdata->control_port_protocol) { in ieee80211_build_hdr()
2159 memcpy(hdr.addr1, sdata->u.mgd.bssid, ETH_ALEN); in ieee80211_build_hdr()
2160 memcpy(hdr.addr2, sdata->vif.addr, ETH_ALEN); in ieee80211_build_hdr()
2167 memcpy(hdr.addr1, sdata->u.mgd.bssid, ETH_ALEN); in ieee80211_build_hdr()
2172 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); in ieee80211_build_hdr()
2185 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); in ieee80211_build_hdr()
2196 memcpy(hdr.addr3, sdata->u.ibss.bssid, ETH_ALEN); in ieee80211_build_hdr()
2198 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); in ieee80211_build_hdr()
2216 } else if (ieee80211_vif_is_mesh(&sdata->vif)) { in ieee80211_build_hdr()
2231 if (unlikely(!ieee80211_vif_is_mesh(&sdata->vif) && in ieee80211_build_hdr()
2232 (sdata->vif.type != NL80211_IFTYPE_OCB) && in ieee80211_build_hdr()
2234 (cpu_to_be16(ethertype) != sdata->control_port_protocol || in ieee80211_build_hdr()
2235 !ether_addr_equal(sdata->vif.addr, skb->data + ETH_ALEN)))) { in ieee80211_build_hdr()
2238 sdata->name, hdr.addr1); in ieee80211_build_hdr()
2327 head_need += sdata->encrypt_headroom; in ieee80211_build_hdr()
2330 if (ieee80211_skb_resize(sdata, skb, head_need, true)) { in ieee80211_build_hdr()
2391 struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); in __ieee80211_subif_start_xmit() local
2401 if (ieee80211_lookup_ra_sta(sdata, skb, &sta)) { in __ieee80211_subif_start_xmit()
2406 skb = ieee80211_build_hdr(sdata, skb, info_flags, sta); in __ieee80211_subif_start_xmit()
2414 ieee80211_xmit(sdata, sta, skb); in __ieee80211_subif_start_xmit()
2434 ieee80211_build_data_template(struct ieee80211_sub_if_data *sdata, in ieee80211_build_data_template() argument
2439 .local = sdata->local, in ieee80211_build_data_template()
2440 .sdata = sdata, in ieee80211_build_data_template()
2446 if (ieee80211_lookup_ra_sta(sdata, skb, &sta)) { in ieee80211_build_data_template()
2452 skb = ieee80211_build_hdr(sdata, skb, info_flags, sta); in ieee80211_build_data_template()
2457 tx.sta = sta_info_get(sdata, hdr->addr1); in ieee80211_build_data_template()
2495 struct ieee80211_sub_if_data *sdata; in ieee80211_tx_pending_skb() local
2501 sdata = vif_to_sdata(info->control.vif); in ieee80211_tx_pending_skb()
2504 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); in ieee80211_tx_pending_skb()
2510 result = ieee80211_tx(sdata, NULL, skb, true); in ieee80211_tx_pending_skb()
2518 sta = sta_info_get(sdata, hdr->addr1); in ieee80211_tx_pending_skb()
2577 static void __ieee80211_beacon_add_tim(struct ieee80211_sub_if_data *sdata, in __ieee80211_beacon_add_tim() argument
2594 ps->dtim_count = sdata->vif.bss_conf.dtim_period - 1; in __ieee80211_beacon_add_tim()
2603 *pos++ = sdata->vif.bss_conf.dtim_period; in __ieee80211_beacon_add_tim()
2642 static int ieee80211_beacon_add_tim(struct ieee80211_sub_if_data *sdata, in ieee80211_beacon_add_tim() argument
2646 struct ieee80211_local *local = sdata->local; in ieee80211_beacon_add_tim()
2656 __ieee80211_beacon_add_tim(sdata, ps, skb, is_template); in ieee80211_beacon_add_tim()
2659 __ieee80211_beacon_add_tim(sdata, ps, skb, is_template); in ieee80211_beacon_add_tim()
2666 static void ieee80211_set_csa(struct ieee80211_sub_if_data *sdata, in ieee80211_set_csa() argument
2675 switch (sdata->vif.type) { in ieee80211_set_csa()
2694 resp = rcu_dereference(sdata->u.ap.probe_resp); in ieee80211_set_csa()
2706 if (sdata->vif.type == NL80211_IFTYPE_AP && resp) in ieee80211_set_csa()
2714 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); in ieee80211_csa_update_counter() local
2720 if (sdata->vif.type == NL80211_IFTYPE_AP) in ieee80211_csa_update_counter()
2721 beacon = rcu_dereference(sdata->u.ap.beacon); in ieee80211_csa_update_counter()
2722 else if (sdata->vif.type == NL80211_IFTYPE_ADHOC) in ieee80211_csa_update_counter()
2723 beacon = rcu_dereference(sdata->u.ibss.presp); in ieee80211_csa_update_counter()
2724 else if (ieee80211_vif_is_mesh(&sdata->vif)) in ieee80211_csa_update_counter()
2725 beacon = rcu_dereference(sdata->u.mesh.beacon); in ieee80211_csa_update_counter()
2744 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); in ieee80211_csa_is_complete() local
2750 if (!ieee80211_sdata_running(sdata)) in ieee80211_csa_is_complete()
2755 struct ieee80211_if_ap *ap = &sdata->u.ap; in ieee80211_csa_is_complete()
2763 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in ieee80211_csa_is_complete()
2772 struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; in ieee80211_csa_is_complete()
2810 struct ieee80211_sub_if_data *sdata = NULL; in __ieee80211_beacon_get() local
2818 sdata = vif_to_sdata(vif); in __ieee80211_beacon_get()
2819 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); in __ieee80211_beacon_get()
2821 if (!ieee80211_sdata_running(sdata) || !chanctx_conf) in __ieee80211_beacon_get()
2827 if (sdata->vif.type == NL80211_IFTYPE_AP) { in __ieee80211_beacon_get()
2828 struct ieee80211_if_ap *ap = &sdata->u.ap; in __ieee80211_beacon_get()
2836 ieee80211_set_csa(sdata, beacon); in __ieee80211_beacon_get()
2854 ieee80211_beacon_add_tim(sdata, &ap->ps, skb, in __ieee80211_beacon_get()
2870 } else if (sdata->vif.type == NL80211_IFTYPE_ADHOC) { in __ieee80211_beacon_get()
2871 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; in __ieee80211_beacon_get()
2882 ieee80211_set_csa(sdata, beacon); in __ieee80211_beacon_get()
2896 } else if (ieee80211_vif_is_mesh(&sdata->vif)) { in __ieee80211_beacon_get()
2897 struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; in __ieee80211_beacon_get()
2912 ieee80211_set_csa(sdata, beacon); in __ieee80211_beacon_get()
2916 ifmsh->sync_ops->adjust_tbtt(sdata, beacon); in __ieee80211_beacon_get()
2928 ieee80211_beacon_add_tim(sdata, &ifmsh->ps, skb, is_template); in __ieee80211_beacon_get()
2967 txrc.bss_conf = &sdata->vif.bss_conf; in __ieee80211_beacon_get()
2970 txrc.rate_idx_mask = sdata->rc_rateidx_mask[band]; in __ieee80211_beacon_get()
2976 rate_control_get_rate(sdata, NULL, &txrc); in __ieee80211_beacon_get()
3022 struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); in ieee80211_proberesp_get() local
3024 if (sdata->vif.type != NL80211_IFTYPE_AP) in ieee80211_proberesp_get()
3029 ap = &sdata->u.ap; in ieee80211_proberesp_get()
3052 struct ieee80211_sub_if_data *sdata; in ieee80211_pspoll_get() local
3061 sdata = vif_to_sdata(vif); in ieee80211_pspoll_get()
3062 ifmgd = &sdata->u.mgd; in ieee80211_pspoll_get()
3063 local = sdata->local; in ieee80211_pspoll_get()
3091 struct ieee80211_sub_if_data *sdata; in ieee80211_nullfunc_get() local
3099 sdata = vif_to_sdata(vif); in ieee80211_nullfunc_get()
3100 ifmgd = &sdata->u.mgd; in ieee80211_nullfunc_get()
3101 local = sdata->local; in ieee80211_nullfunc_get()
3200 struct ieee80211_sub_if_data *sdata; in ieee80211_get_buffered_bc() local
3205 sdata = vif_to_sdata(vif); in ieee80211_get_buffered_bc()
3208 chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); in ieee80211_get_buffered_bc()
3213 if (sdata->vif.type == NL80211_IFTYPE_AP) { in ieee80211_get_buffered_bc()
3215 rcu_dereference(sdata->u.ap.beacon); in ieee80211_get_buffered_bc()
3220 ps = &sdata->u.ap.ps; in ieee80211_get_buffered_bc()
3221 } else if (ieee80211_vif_is_mesh(&sdata->vif)) { in ieee80211_get_buffered_bc()
3222 ps = &sdata->u.mesh.ps; in ieee80211_get_buffered_bc()
3246 if (sdata->vif.type == NL80211_IFTYPE_AP) in ieee80211_get_buffered_bc()
3247 sdata = IEEE80211_DEV_TO_SUB_IF(skb->dev); in ieee80211_get_buffered_bc()
3248 if (!ieee80211_tx_prepare(sdata, &tx, NULL, skb)) in ieee80211_get_buffered_bc()
3270 struct ieee80211_sub_if_data *sdata = sta->sdata; in ieee80211_reserve_tid() local
3271 struct ieee80211_local *local = sdata->local; in ieee80211_reserve_tid()
3278 switch (sdata->vif.type) { in ieee80211_reserve_tid()
3297 sdata_err(sdata, "TID reservation already active\n"); in ieee80211_reserve_tid()
3302 ieee80211_stop_vif_queues(sdata->local, sdata, in ieee80211_reserve_tid()
3314 queues = BIT(sdata->vif.hw_queue[ieee802_1d_to_ac[tid]]); in ieee80211_reserve_tid()
3315 __ieee80211_flush_queues(local, sdata, queues, false); in ieee80211_reserve_tid()
3319 ieee80211_wake_vif_queues(local, sdata, in ieee80211_reserve_tid()
3334 struct ieee80211_sub_if_data *sdata = sta->sdata; in ieee80211_unreserve_tid() local
3336 lockdep_assert_held(&sdata->local->sta_mtx); in ieee80211_unreserve_tid()
3339 switch (sdata->vif.type) { in ieee80211_unreserve_tid()
3350 sdata_err(sdata, "TID to unreserve (%d) isn't reserved\n", tid); in ieee80211_unreserve_tid()
3358 void __ieee80211_tx_skb_tid_band(struct ieee80211_sub_if_data *sdata, in __ieee80211_tx_skb_tid_band() argument
3371 skb->dev = sdata->dev; in __ieee80211_tx_skb_tid_band()
3380 ieee80211_xmit(sdata, NULL, skb); in __ieee80211_tx_skb_tid_band()