ath9k: fix missed error codes in the tx status check
PATCH 1/1 ath9k: fix missed error codes in the tx status check
My previous change added in:
commit 815833e7ecf0b9a017315cae6aef4d7cd9517681
ath9k: fix tx status reporting
was not checking all possible tx error conditions. This could possibly lead to throughput issues due to slow rate control adaption or missed retransmissions of failed A-MPDU frames.
This patch adds a mask for all possible error conditions and uses it in the xmit ok check.
Reported-by Björn Smedman <[email protected]>
Signed-off-by Felix Fietkau <[email protected]>
---
drivers/net/wireless/ath/ath9k/mac.h +3 -0
@@ -77,6 +77,9 @@#define ATH9K_TXERR_XTXOP 0x08#define ATH9K_TXERR_TIMER_EXPIRED 0x10#define ATH9K_TX_ACKED 0x20 +#define ATH9K_TXERR_MASK \ + (ATH9K_TXERR_XRETRY | ATH9K_TXERR_FILT | ATH9K_TXERR_FIFO | \ + ATH9K_TXERR_XTXOP | ATH9K_TXERR_TIMER_EXPIRED)#define ATH9K_TX_BA 0x01#define ATH9K_TX_PWRMGMT 0x02
drivers/net/wireless/ath/ath9k/xmit.c +1 -1
@@ -2072,7 +2072,7 @@ static void ath_tx_processq(struct ath_softc *sc, struct ath_txq *txq) &txq->axq_q, lastbf->list.prev); txq->axq_depth--; - txok = !(ds->ds_txstat.ts_status &ATH9K_TXERR_FILT ); + txok = !(ds->ds_txstat.ts_status &ATH9K_TXERR_MASK ); txq->axq_tx_inprogress = false;spin_unlock_bh (&txq->axq_lock);