mt7601u: fix tx status reporting contexts
mac80211 requires that rx path does not run concurrently with tx status reporting. Since rx path is run in driver tasklet, tx status cannot be reported directly from interrupt context (there would be no way to lock it out). Add tasklet for tx and move all possible code from irq handler there. Note: tx tasklet is needed because workqueue is queued very rarely and that kills TCP performance. Signed-off-by: Jakub Kicinski <kubakici@wp.pl> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:

committed by
Kalle Valo

parent
d9517c0a5d
commit
4513493d18
@@ -456,6 +456,7 @@ struct mt7601u_dev *mt7601u_alloc_device(struct device *pdev)
|
||||
spin_lock_init(&dev->lock);
|
||||
spin_lock_init(&dev->con_mon_lock);
|
||||
atomic_set(&dev->avg_ampdu_len, 1);
|
||||
skb_queue_head_init(&dev->tx_skb_done);
|
||||
|
||||
dev->stat_wq = alloc_workqueue("mt7601u", WQ_UNBOUND, 0);
|
||||
if (!dev->stat_wq) {
|
||||
|
Reference in New Issue
Block a user