diff options
Diffstat (limited to 'package/kernel/mac80211/patches/020-11-rt2x00-separte-clearing-entry-from-rt2x00lib_txdone.patch')
-rw-r--r-- | package/kernel/mac80211/patches/020-11-rt2x00-separte-clearing-entry-from-rt2x00lib_txdone.patch | 83 |
1 files changed, 0 insertions, 83 deletions
diff --git a/package/kernel/mac80211/patches/020-11-rt2x00-separte-clearing-entry-from-rt2x00lib_txdone.patch b/package/kernel/mac80211/patches/020-11-rt2x00-separte-clearing-entry-from-rt2x00lib_txdone.patch deleted file mode 100644 index e1359397ba..0000000000 --- a/package/kernel/mac80211/patches/020-11-rt2x00-separte-clearing-entry-from-rt2x00lib_txdone.patch +++ /dev/null @@ -1,83 +0,0 @@ -From 56646adf9cd60b488ddc5633a2d9aa1f30efa5db Mon Sep 17 00:00:00 2001 -From: Stanislaw Gruszka <sgruszka@redhat.com> -Date: Wed, 15 Feb 2017 10:25:07 +0100 -Subject: [PATCH 11/19] rt2x00: separte clearing entry from rt2x00lib_txdone - -This makes rt2x00lib_txdone a bit simpler and will allow to reuse -code in different variant of txdone which I'm preparing. - -Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> -Signed-off-by: Kalle Valo <kvalo@codeaurora.org> ---- - drivers/net/wireless/ralink/rt2x00/rt2x00dev.c | 51 +++++++++++++++----------- - 1 file changed, 29 insertions(+), 22 deletions(-) - ---- a/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c -+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c -@@ -391,6 +391,32 @@ static void rt2x00lib_fill_tx_status(str - } - } - -+static void rt2x00lib_clear_entry(struct rt2x00_dev *rt2x00dev, -+ struct queue_entry *entry) -+{ -+ /* -+ * Make this entry available for reuse. -+ */ -+ entry->skb = NULL; -+ entry->flags = 0; -+ -+ rt2x00dev->ops->lib->clear_entry(entry); -+ -+ rt2x00queue_index_inc(entry, Q_INDEX_DONE); -+ -+ /* -+ * If the data queue was below the threshold before the txdone -+ * handler we must make sure the packet queue in the mac80211 stack -+ * is reenabled when the txdone handler has finished. This has to be -+ * serialized with rt2x00mac_tx(), otherwise we can wake up queue -+ * before it was stopped. -+ */ -+ spin_lock_bh(&entry->queue->tx_lock); -+ if (!rt2x00queue_threshold(entry->queue)) -+ rt2x00queue_unpause_queue(entry->queue); -+ spin_unlock_bh(&entry->queue->tx_lock); -+} -+ - void rt2x00lib_txdone(struct queue_entry *entry, - struct txdone_entry_desc *txdesc) - { -@@ -471,30 +497,11 @@ void rt2x00lib_txdone(struct queue_entry - ieee80211_tx_status(rt2x00dev->hw, entry->skb); - else - ieee80211_tx_status_ni(rt2x00dev->hw, entry->skb); -- } else -+ } else { - dev_kfree_skb_any(entry->skb); -+ } - -- /* -- * Make this entry available for reuse. -- */ -- entry->skb = NULL; -- entry->flags = 0; -- -- rt2x00dev->ops->lib->clear_entry(entry); -- -- rt2x00queue_index_inc(entry, Q_INDEX_DONE); -- -- /* -- * If the data queue was below the threshold before the txdone -- * handler we must make sure the packet queue in the mac80211 stack -- * is reenabled when the txdone handler has finished. This has to be -- * serialized with rt2x00mac_tx(), otherwise we can wake up queue -- * before it was stopped. -- */ -- spin_lock_bh(&entry->queue->tx_lock); -- if (!rt2x00queue_threshold(entry->queue)) -- rt2x00queue_unpause_queue(entry->queue); -- spin_unlock_bh(&entry->queue->tx_lock); -+ rt2x00lib_clear_entry(rt2x00dev, entry); - } - EXPORT_SYMBOL_GPL(rt2x00lib_txdone); - |