mt76: check for pending reset before attempting to schedule tx
authorFelix Fietkau <nbd@nbd.name>
Wed, 25 Apr 2018 09:11:24 +0000 (11:11 +0200)
committerKalle Valo <kvalo@codeaurora.org>
Mon, 30 Apr 2018 10:21:29 +0000 (13:21 +0300)
The check within mt76_txq_send_burst is not enough, as it happens after
a first frame has already been queued up

Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/mediatek/mt76/tx.c

index 6aca794..7ecd2d7 100644 (file)
@@ -385,6 +385,10 @@ restart:
                bool empty = false;
                int cur;
 
+               if (test_bit(MT76_SCANNING, &dev->state) ||
+                   test_bit(MT76_RESET, &dev->state))
+                       return -EBUSY;
+
                mtxq = list_first_entry(&hwq->swq, struct mt76_txq, list);
                if (mtxq->send_bar && mtxq->aggr) {
                        struct ieee80211_txq *txq = mtxq_to_txq(mtxq);