diff options
author | John W. Linville <linville@tuxdriver.com> | 2012-11-16 21:59:13 +0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-11-16 21:59:13 +0400 |
commit | 26c6e80892d8c160dffaba85889bd4e65b1dacf6 (patch) | |
tree | 0d7751d80ac44b9407270be246f83e8354fc26ba /net/mac80211/tx.c | |
parent | 6fc4adca6ce3e1d57a42707019dddcb883578a91 (diff) | |
parent | d61f978b8f26d2392c88249f877e46e2c2b5561d (diff) | |
download | linux-26c6e80892d8c160dffaba85889bd4e65b1dacf6.tar.xz |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless into for-davem
Diffstat (limited to 'net/mac80211/tx.c')
-rw-r--r-- | net/mac80211/tx.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c index c9bf83f36657..b858ebe41fda 100644 --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c @@ -1358,7 +1358,7 @@ static int invoke_tx_handlers(struct ieee80211_tx_data *tx) if (tx->skb) ieee80211_free_txskb(&tx->local->hw, tx->skb); else - __skb_queue_purge(&tx->skbs); + ieee80211_purge_tx_queue(&tx->local->hw, &tx->skbs); return -1; } else if (unlikely(res == TX_QUEUED)) { I802_DEBUG_INC(tx->local->tx_handlers_queued); @@ -2120,10 +2120,13 @@ netdev_tx_t ieee80211_subif_start_xmit(struct sk_buff *skb, */ void ieee80211_clear_tx_pending(struct ieee80211_local *local) { + struct sk_buff *skb; int i; - for (i = 0; i < local->hw.queues; i++) - skb_queue_purge(&local->pending[i]); + for (i = 0; i < local->hw.queues; i++) { + while ((skb = skb_dequeue(&local->pending[i])) != NULL) + ieee80211_free_txskb(&local->hw, skb); + } } /* |