/kernel/linux/linux-6.6/net/mac80211/ |
H A D | agg-tx.c | 143 struct tid_ampdu_tx *tid_tx) in ieee80211_assign_tid_tx() 147 rcu_assign_pointer(sta->ampdu_mlme.tid_tx[tid], tid_tx); in ieee80211_assign_tid_tx() 242 struct tid_ampdu_tx *tid_tx, u16 tid) in __acquires() 250 if (WARN(!tid_tx, in __acquires() 255 if (!skb_queue_empty(&tid_tx->pending)) { in __acquires() 258 skb_queue_splice_tail_init(&tid_tx->pending, in __acquires() 272 struct tid_ampdu_tx *tid_tx; in ieee80211_remove_tid_tx() local 277 tid_tx = rcu_dereference_protected_tid_tx(sta, tid); in ieee80211_remove_tid_tx() 285 * guaranteeing that no packets go to the tid_tx pendin in ieee80211_remove_tid_tx() 142 ieee80211_assign_tid_tx(struct sta_info *sta, int tid, struct tid_ampdu_tx *tid_tx) ieee80211_assign_tid_tx() argument 303 struct tid_ampdu_tx *tid_tx; ___ieee80211_stop_tx_ba_session() local 434 struct tid_ampdu_tx *tid_tx = from_timer(tid_tx, t, addba_resp_timer); sta_addba_resp_timer_expired() local 452 ieee80211_send_addba_with_timeout(struct sta_info *sta, struct tid_ampdu_tx *tid_tx) ieee80211_send_addba_with_timeout() argument 498 struct tid_ampdu_tx *tid_tx; ieee80211_tx_ba_session_handle_start() local 567 struct tid_ampdu_tx *tid_tx; ieee80211_refresh_tx_agg_session_timer() local 586 struct tid_ampdu_tx *tid_tx = from_timer(tid_tx, t, session_timer); sta_tx_agg_session_timer_expired() local 613 struct tid_ampdu_tx *tid_tx; ieee80211_start_tx_ba_session() local 758 struct tid_ampdu_tx *tid_tx; ieee80211_agg_tx_operational() local 798 ieee80211_start_tx_ba_cb(struct sta_info *sta, int tid, struct tid_ampdu_tx *tid_tx) ieee80211_start_tx_ba_cb() argument 827 struct tid_ampdu_tx *tid_tx; ieee80211_lookup_tid_tx() local 855 struct tid_ampdu_tx *tid_tx; ieee80211_start_tx_ba_cb_irqsafe() local 890 struct tid_ampdu_tx *tid_tx; ieee80211_stop_tx_ba_session() local 927 ieee80211_stop_tx_ba_cb(struct sta_info *sta, int tid, struct tid_ampdu_tx *tid_tx) ieee80211_stop_tx_ba_cb() argument 969 struct tid_ampdu_tx *tid_tx; ieee80211_stop_tx_ba_cb_irqsafe() local 991 struct tid_ampdu_tx *tid_tx; ieee80211_process_addba_resp() local [all...] |
H A D | ht.c | 334 * the BA session, so handle it to properly clean tid_tx data. in ieee80211_sta_tear_down_BA_sessions() 341 struct tid_ampdu_tx *tid_tx = in ieee80211_sta_tear_down_BA_sessions() local 344 if (!tid_tx) in ieee80211_sta_tear_down_BA_sessions() 347 if (test_and_clear_bit(HT_AGG_STATE_STOP_CB, &tid_tx->state)) in ieee80211_sta_tear_down_BA_sessions() 348 ieee80211_stop_tx_ba_cb(sta, i, tid_tx); in ieee80211_sta_tear_down_BA_sessions() 358 struct tid_ampdu_tx *tid_tx; in ieee80211_ba_session_work() local 393 tid_tx = sta->ampdu_mlme.tid_start_tx[tid]; in ieee80211_ba_session_work() 394 if (!blocked && tid_tx) { in ieee80211_ba_session_work() 427 * Assign it over to the normal tid_tx array in ieee80211_ba_session_work() 433 if (sta->ampdu_mlme.tid_tx[ti in ieee80211_ba_session_work() [all...] |
H A D | status.c | 174 struct tid_ampdu_tx *tid_tx; in ieee80211_check_pending_bar() local 176 tid_tx = rcu_dereference(sta->ampdu_mlme.tid_tx[tid]); in ieee80211_check_pending_bar() 177 if (!tid_tx || !tid_tx->bar_pending) in ieee80211_check_pending_bar() 180 tid_tx->bar_pending = false; in ieee80211_check_pending_bar() 181 ieee80211_send_bar(&sta->sdata->vif, addr, tid, tid_tx->failed_bar_ssn); in ieee80211_check_pending_bar() 234 struct tid_ampdu_tx *tid_tx; in ieee80211_set_bar_pending() local 236 tid_tx = rcu_dereference(sta->ampdu_mlme.tid_tx[ti in ieee80211_set_bar_pending() [all...] |
H A D | sta_info.h | 263 * to tid_tx[idx], which are protected by the sta spinlock) 277 * @tid_tx: aggregation info for Tx per TID 295 struct tid_ampdu_tx __rcu *tid_tx[IEEE80211_NUM_TIDS]; member 797 struct tid_ampdu_tx *tid_tx); 802 return rcu_dereference_protected(sta->ampdu_mlme.tid_tx[tid], in rcu_dereference_protected_tid_tx()
|
H A D | tx.c | 1110 struct tid_ampdu_tx *tid_tx, in ieee80211_tx_prep_agg() 1117 if (test_bit(HT_AGG_STATE_OPERATIONAL, &tid_tx->state)) { in ieee80211_tx_prep_agg() 1119 } else if (test_bit(HT_AGG_STATE_WANT_START, &tid_tx->state)) { in ieee80211_tx_prep_agg() 1144 tid_tx = rcu_dereference_protected_tid_tx(tx->sta, tid); in ieee80211_tx_prep_agg() 1146 if (!tid_tx) { in ieee80211_tx_prep_agg() 1148 } else if (test_bit(HT_AGG_STATE_OPERATIONAL, &tid_tx->state)) { in ieee80211_tx_prep_agg() 1161 __skb_queue_tail(&tid_tx->pending, skb); in ieee80211_tx_prep_agg() 1162 if (skb_queue_len(&tid_tx->pending) > STA_MAX_TX_BUFFER) in ieee80211_tx_prep_agg() 1163 purge_skb = __skb_dequeue(&tid_tx->pending); in ieee80211_tx_prep_agg() 1173 tid_tx in ieee80211_tx_prep_agg() 1107 ieee80211_tx_prep_agg(struct ieee80211_tx_data *tx, struct sk_buff *skb, struct ieee80211_tx_info *info, struct tid_ampdu_tx *tid_tx, int tid) ieee80211_tx_prep_agg() argument 1251 struct tid_ampdu_tx *tid_tx; ieee80211_tx_prepare() local 3741 struct tid_ampdu_tx *tid_tx = NULL; ieee80211_xmit_fast() local 4583 struct tid_ampdu_tx *tid_tx; ieee80211_8023_xmit() local [all...] |
H A D | mesh.c | 771 struct tid_ampdu_tx *tid_tx; in ieee80211_mesh_xmit_fast() local 815 tid_tx = rcu_dereference(sta->ampdu_mlme.tid_tx[tid]); in ieee80211_mesh_xmit_fast() 816 if (tid_tx) { in ieee80211_mesh_xmit_fast() 817 if (!test_bit(HT_AGG_STATE_OPERATIONAL, &tid_tx->state)) in ieee80211_mesh_xmit_fast() 819 if (tid_tx->timeout) in ieee80211_mesh_xmit_fast() 820 tid_tx->last_tx = jiffies; in ieee80211_mesh_xmit_fast() 847 __ieee80211_xmit_fast(sdata, sta, &entry->fast_tx, skb, tid_tx, in ieee80211_mesh_xmit_fast()
|
H A D | debugfs_sta.c | 323 struct tid_ampdu_tx *tid_tx; in sta_agg_status_read() local 342 tid_tx = rcu_dereference(sta->ampdu_mlme.tid_tx[i]); in sta_agg_status_read() 354 p += scnprintf(p, bufsz + buf - p, "\t\t%x", !!tid_tx); in sta_agg_status_read() 356 tid_tx ? tid_tx->dialog_token : 0); in sta_agg_status_read() 358 tid_tx ? skb_queue_len(&tid_tx->pending) : 0); in sta_agg_status_read()
|
H A D | sta_info.c | 120 struct tid_ampdu_tx *tid_tx; in __cleanup_single_sta() local 173 tid_tx = rcu_dereference_raw(sta->ampdu_mlme.tid_tx[i]); in __cleanup_single_sta() 174 if (!tid_tx) in __cleanup_single_sta() 176 ieee80211_purge_tx_queue(&local->hw, &tid_tx->pending); in __cleanup_single_sta() 177 kfree(tid_tx); in __cleanup_single_sta()
|
H A D | rx.c | 2731 struct tid_ampdu_tx *tid_tx; in ieee80211_rx_mesh_fast_forward() local 2752 tid_tx = rcu_dereference(sta->ampdu_mlme.tid_tx[tid]); in ieee80211_rx_mesh_fast_forward() 2753 if (tid_tx) { in ieee80211_rx_mesh_fast_forward() 2754 if (!test_bit(HT_AGG_STATE_OPERATIONAL, &tid_tx->state)) in ieee80211_rx_mesh_fast_forward() 2757 if (tid_tx->timeout) in ieee80211_rx_mesh_fast_forward() 2758 tid_tx->last_tx = jiffies; in ieee80211_rx_mesh_fast_forward() 2773 __ieee80211_xmit_fast(sdata, sta, &entry->fast_tx, skb, tid_tx, in ieee80211_rx_mesh_fast_forward()
|
H A D | ieee80211_i.h | 2129 struct tid_ampdu_tx *tid_tx); 2131 struct tid_ampdu_tx *tid_tx);
|
/kernel/linux/linux-5.10/net/mac80211/ |
H A D | agg-tx.c | 143 struct tid_ampdu_tx *tid_tx) in ieee80211_assign_tid_tx() 147 rcu_assign_pointer(sta->ampdu_mlme.tid_tx[tid], tid_tx); in ieee80211_assign_tid_tx() 242 struct tid_ampdu_tx *tid_tx, u16 tid) in __acquires() 250 if (WARN(!tid_tx, in __acquires() 255 if (!skb_queue_empty(&tid_tx->pending)) { in __acquires() 258 skb_queue_splice_tail_init(&tid_tx->pending, in __acquires() 272 struct tid_ampdu_tx *tid_tx; in ieee80211_remove_tid_tx() local 277 tid_tx = rcu_dereference_protected_tid_tx(sta, tid); in ieee80211_remove_tid_tx() 285 * guaranteeing that no packets go to the tid_tx pendin in ieee80211_remove_tid_tx() 142 ieee80211_assign_tid_tx(struct sta_info *sta, int tid, struct tid_ampdu_tx *tid_tx) ieee80211_assign_tid_tx() argument 303 struct tid_ampdu_tx *tid_tx; ___ieee80211_stop_tx_ba_session() local 434 struct tid_ampdu_tx *tid_tx = from_timer(tid_tx, t, addba_resp_timer); sta_addba_resp_timer_expired() local 452 ieee80211_send_addba_with_timeout(struct sta_info *sta, struct tid_ampdu_tx *tid_tx) ieee80211_send_addba_with_timeout() argument 492 struct tid_ampdu_tx *tid_tx; ieee80211_tx_ba_session_handle_start() local 565 struct tid_ampdu_tx *tid_tx = from_timer(tid_tx, t, session_timer); sta_tx_agg_session_timer_expired() local 592 struct tid_ampdu_tx *tid_tx; ieee80211_start_tx_ba_session() local 737 struct tid_ampdu_tx *tid_tx; ieee80211_agg_tx_operational() local 777 ieee80211_start_tx_ba_cb(struct sta_info *sta, int tid, struct tid_ampdu_tx *tid_tx) ieee80211_start_tx_ba_cb() argument 800 struct tid_ampdu_tx *tid_tx; ieee80211_lookup_tid_tx() local 828 struct tid_ampdu_tx *tid_tx; ieee80211_start_tx_ba_cb_irqsafe() local 863 struct tid_ampdu_tx *tid_tx; ieee80211_stop_tx_ba_session() local 900 ieee80211_stop_tx_ba_cb(struct sta_info *sta, int tid, struct tid_ampdu_tx *tid_tx) ieee80211_stop_tx_ba_cb() argument 942 struct tid_ampdu_tx *tid_tx; ieee80211_stop_tx_ba_cb_irqsafe() local 964 struct tid_ampdu_tx *tid_tx; ieee80211_process_addba_resp() local [all...] |
H A D | ht.c | 319 * the BA session, so handle it to properly clean tid_tx data. in ieee80211_sta_tear_down_BA_sessions() 326 struct tid_ampdu_tx *tid_tx = in ieee80211_sta_tear_down_BA_sessions() local 329 if (!tid_tx) in ieee80211_sta_tear_down_BA_sessions() 332 if (test_and_clear_bit(HT_AGG_STATE_STOP_CB, &tid_tx->state)) in ieee80211_sta_tear_down_BA_sessions() 333 ieee80211_stop_tx_ba_cb(sta, i, tid_tx); in ieee80211_sta_tear_down_BA_sessions() 343 struct tid_ampdu_tx *tid_tx; in ieee80211_ba_session_work() local 378 tid_tx = sta->ampdu_mlme.tid_start_tx[tid]; in ieee80211_ba_session_work() 379 if (!blocked && tid_tx) { in ieee80211_ba_session_work() 381 * Assign it over to the normal tid_tx array in ieee80211_ba_session_work() 387 if (sta->ampdu_mlme.tid_tx[ti in ieee80211_ba_session_work() [all...] |
H A D | status.c | 173 struct tid_ampdu_tx *tid_tx; in ieee80211_check_pending_bar() local 175 tid_tx = rcu_dereference(sta->ampdu_mlme.tid_tx[tid]); in ieee80211_check_pending_bar() 176 if (!tid_tx || !tid_tx->bar_pending) in ieee80211_check_pending_bar() 179 tid_tx->bar_pending = false; in ieee80211_check_pending_bar() 180 ieee80211_send_bar(&sta->sdata->vif, addr, tid, tid_tx->failed_bar_ssn); in ieee80211_check_pending_bar() 236 struct tid_ampdu_tx *tid_tx; in ieee80211_set_bar_pending() local 238 tid_tx = rcu_dereference(sta->ampdu_mlme.tid_tx[ti in ieee80211_set_bar_pending() [all...] |
H A D | tx.c | 1091 struct tid_ampdu_tx *tid_tx, in ieee80211_tx_prep_agg() 1098 if (test_bit(HT_AGG_STATE_OPERATIONAL, &tid_tx->state)) { in ieee80211_tx_prep_agg() 1101 } else if (test_bit(HT_AGG_STATE_WANT_START, &tid_tx->state)) { in ieee80211_tx_prep_agg() 1126 tid_tx = rcu_dereference_protected_tid_tx(tx->sta, tid); in ieee80211_tx_prep_agg() 1128 if (!tid_tx) { in ieee80211_tx_prep_agg() 1130 } else if (test_bit(HT_AGG_STATE_OPERATIONAL, &tid_tx->state)) { in ieee80211_tx_prep_agg() 1144 __skb_queue_tail(&tid_tx->pending, skb); in ieee80211_tx_prep_agg() 1145 if (skb_queue_len(&tid_tx->pending) > STA_MAX_TX_BUFFER) in ieee80211_tx_prep_agg() 1146 purge_skb = __skb_dequeue(&tid_tx->pending); in ieee80211_tx_prep_agg() 1156 tid_tx in ieee80211_tx_prep_agg() 1088 ieee80211_tx_prep_agg(struct ieee80211_tx_data *tx, struct sk_buff *skb, struct ieee80211_tx_info *info, struct tid_ampdu_tx *tid_tx, int tid) ieee80211_tx_prep_agg() argument 1212 struct tid_ampdu_tx *tid_tx; ieee80211_tx_prepare() local 3502 struct tid_ampdu_tx *tid_tx = NULL; ieee80211_xmit_fast() local 4251 struct tid_ampdu_tx *tid_tx; ieee80211_8023_xmit() local [all...] |
H A D | debugfs_sta.c | 320 struct tid_ampdu_tx *tid_tx; in sta_agg_status_read() local 333 tid_tx = rcu_dereference(sta->ampdu_mlme.tid_tx[i]); in sta_agg_status_read() 345 p += scnprintf(p, sizeof(buf) + buf - p, "\t\t%x", !!tid_tx); in sta_agg_status_read() 347 tid_tx ? tid_tx->dialog_token : 0); in sta_agg_status_read() 349 tid_tx ? skb_queue_len(&tid_tx->pending) : 0); in sta_agg_status_read()
|
H A D | sta_info.h | 259 * to tid_tx[idx], which are protected by the sta spinlock) 273 * @tid_tx: aggregation info for Tx per TID 291 struct tid_ampdu_tx __rcu *tid_tx[IEEE80211_NUM_TIDS]; member 742 struct tid_ampdu_tx *tid_tx); 747 return rcu_dereference_protected(sta->ampdu_mlme.tid_tx[tid], in rcu_dereference_protected_tid_tx()
|
H A D | sta_info.c | 87 struct tid_ampdu_tx *tid_tx; in __cleanup_single_sta() local 142 tid_tx = rcu_dereference_raw(sta->ampdu_mlme.tid_tx[i]); in __cleanup_single_sta() 143 if (!tid_tx) in __cleanup_single_sta() 145 ieee80211_purge_tx_queue(&local->hw, &tid_tx->pending); in __cleanup_single_sta() 146 kfree(tid_tx); in __cleanup_single_sta()
|
H A D | ieee80211_i.h | 1890 struct tid_ampdu_tx *tid_tx); 1892 struct tid_ampdu_tx *tid_tx);
|
H A D | rc80211_minstrel_ht.c | 879 if (likely(sta->ampdu_mlme.tid_tx[tid])) in minstrel_aggr_check()
|