Skip to content

Commit

Permalink
mac80211: clean up aggregation destruction
Browse files Browse the repository at this point in the history
Yogesh's patch to destroy aggregation sessions when
stations are destroyed was needed, but unnecessarily
complex. Clean up this code.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
Johannes Berg authored and John W. Linville committed Jan 24, 2012
1 parent d5a2ca6 commit 151a02f
Showing 1 changed file with 8 additions and 23 deletions.
31 changes: 8 additions & 23 deletions net/mac80211/sta_info.c
Original file line number Diff line number Diff line change
Expand Up @@ -815,35 +815,20 @@ static int __must_check __sta_info_destroy(struct sta_info *sta)
}
#endif

/* There could be some memory leaks because of ampdu tx pending queue
* not being freed before destroying the station info.
*
* Make sure that such queues are purged before freeing the station
* info.
* TODO: We have to somehow postpone the full destruction
* until the aggregation stop completes. Refer
* http://thread.gmane.org/gmane.linux.kernel.wireless.general/81936
/*
* Destroy aggregation state here. It would be nice to wait for the
* driver to finish aggregation stop and then clean up, but for now
* drivers have to handle aggregation stop being requested, followed
* directly by station destruction.
*/

mutex_lock(&sta->ampdu_mlme.mtx);

for (i = 0; i < STA_TID_NUM; i++) {
tid_tx = rcu_dereference_protected_tid_tx(sta, i);
tid_tx = rcu_dereference_raw(sta->ampdu_mlme.tid_tx[i]);
if (!tid_tx)
continue;
if (skb_queue_len(&tid_tx->pending)) {
#ifdef CONFIG_MAC80211_HT_DEBUG
wiphy_debug(local->hw.wiphy, "TX A-MPDU purging %d "
"packets for tid=%d\n",
skb_queue_len(&tid_tx->pending), i);
#endif /* CONFIG_MAC80211_HT_DEBUG */
__skb_queue_purge(&tid_tx->pending);
}
kfree_rcu(tid_tx, rcu_head);
__skb_queue_purge(&tid_tx->pending);
kfree(tid_tx);
}

mutex_unlock(&sta->ampdu_mlme.mtx);

sta_info_free(local, sta);

return 0;
Expand Down

0 comments on commit 151a02f

Please sign in to comment.