diff options
Diffstat (limited to 'net/mac80211/agg-tx.c')
-rw-r--r-- | net/mac80211/agg-tx.c | 14 |
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 | ||
147 | static 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 | |||
155 | int ___ieee80211_stop_tx_ba_session(struct sta_info *sta, u16 tid, | 147 | int ___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); |