aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/agg-tx.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/mac80211/agg-tx.c')
-rw-r--r--net/mac80211/agg-tx.c14
1 files changed, 3 insertions, 11 deletions
diff --git a/net/mac80211/agg-tx.c b/net/mac80211/agg-tx.c
index cd5125f77cc..c8be8eff70d 100644
--- a/net/mac80211/agg-tx.c
+++ b/net/mac80211/agg-tx.c
@@ -144,14 +144,6 @@ void ieee80211_assign_tid_tx(struct sta_info *sta, int tid,
144 rcu_assign_pointer(sta->ampdu_mlme.tid_tx[tid], tid_tx); 144 rcu_assign_pointer(sta->ampdu_mlme.tid_tx[tid], tid_tx);
145} 145}
146 146
147static void kfree_tid_tx(struct rcu_head *rcu_head)
148{
149 struct tid_ampdu_tx *tid_tx =
150 container_of(rcu_head, struct tid_ampdu_tx, rcu_head);
151
152 kfree(tid_tx);
153}
154
155int ___ieee80211_stop_tx_ba_session(struct sta_info *sta, u16 tid, 147int ___ieee80211_stop_tx_ba_session(struct sta_info *sta, u16 tid,
156 enum ieee80211_back_parties initiator, 148 enum ieee80211_back_parties initiator,
157 bool tx) 149 bool tx)
@@ -174,7 +166,7 @@ int ___ieee80211_stop_tx_ba_session(struct sta_info *sta, u16 tid,
174 /* not even started yet! */ 166 /* not even started yet! */
175 ieee80211_assign_tid_tx(sta, tid, NULL); 167 ieee80211_assign_tid_tx(sta, tid, NULL);
176 spin_unlock_bh(&sta->lock); 168 spin_unlock_bh(&sta->lock);
177 call_rcu(&tid_tx->rcu_head, kfree_tid_tx); 169 kfree_rcu(tid_tx, rcu_head);
178 return 0; 170 return 0;
179 } 171 }
180 172
@@ -333,7 +325,7 @@ void ieee80211_tx_ba_session_handle_start(struct sta_info *sta, int tid)
333 spin_unlock_bh(&sta->lock); 325 spin_unlock_bh(&sta->lock);
334 326
335 ieee80211_wake_queue_agg(local, tid); 327 ieee80211_wake_queue_agg(local, tid);
336 call_rcu(&tid_tx->rcu_head, kfree_tid_tx); 328 kfree_rcu(tid_tx, rcu_head);
337 return; 329 return;
338 } 330 }
339 331
@@ -718,7 +710,7 @@ void ieee80211_stop_tx_ba_cb(struct ieee80211_vif *vif, u8 *ra, u8 tid)
718 710
719 ieee80211_agg_splice_finish(local, tid); 711 ieee80211_agg_splice_finish(local, tid);
720 712
721 call_rcu(&tid_tx->rcu_head, kfree_tid_tx); 713 kfree_rcu(tid_tx, rcu_head);
722 714
723 unlock_sta: 715 unlock_sta:
724 spin_unlock_bh(&sta->lock); 716 spin_unlock_bh(&sta->lock);