diff options
author | Lorenzo Bianconi <lorenzo@kernel.org> | 2019-02-28 16:31:31 +0300 |
---|---|---|
committer | Felix Fietkau <nbd@nbd.name> | 2019-03-07 14:50:23 +0300 |
commit | cd44bc40a1f1eb4e259889579d599f30b1287828 (patch) | |
tree | 97ca0192499c2ec574517cea1da103667d69ac35 /drivers/net/wireless/mediatek/mt76/usb.c | |
parent | 4177c5d94264b57f426ef5c45a788808d1a1e536 (diff) | |
download | linux-cd44bc40a1f1eb4e259889579d599f30b1287828.tar.xz |
mt76: introduce q->stopped parameter
Introduce mt76_queue stopped parameter in order to run
ieee80211_wake_queue only when mac80211 queues have been
previously stopped and avoid to disable interrupts when
it is not necessary
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'drivers/net/wireless/mediatek/mt76/usb.c')
-rw-r--r-- | drivers/net/wireless/mediatek/mt76/usb.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/net/wireless/mediatek/mt76/usb.c b/drivers/net/wireless/mediatek/mt76/usb.c index ae6ada370597..4c1abd492405 100644 --- a/drivers/net/wireless/mediatek/mt76/usb.c +++ b/drivers/net/wireless/mediatek/mt76/usb.c @@ -655,7 +655,11 @@ static void mt76u_tx_tasklet(unsigned long data) spin_lock_bh(&q->lock); } mt76_txq_schedule(dev, q); - wake = i < IEEE80211_NUM_ACS && q->queued < q->ndesc - 8; + + wake = q->stopped && q->queued < q->ndesc - 8; + if (wake) + q->stopped = false; + if (!q->queued) wake_up(&dev->tx_wait); |