diff mbox series

ath9k: Make sure to zero status.tx_time before reporting TX status

Message ID 20190215164855.30666-1-toke@redhat.com (mailing list archive)
State Accepted
Commit cc591d77aba12ee69fedd12140b3dfa0816c178a
Delegated to: Kalle Valo
Headers show
Series ath9k: Make sure to zero status.tx_time before reporting TX status | expand

Commit Message

Toke Høiland-Jørgensen Feb. 15, 2019, 4:48 p.m. UTC
Since ath9k reports airtime usage directly using the
ieee80211_report_airtime() callback, it shouldn't also report it using the
tx_time in status. Make sure the field is zeroed before TX status is
reported to avoid spurious airtime being accounted by bits being left over
from earlier uses of the cb.

Fixes: 89cea7493a34 ("ath9k: Switch to mac80211 TXQ scheduling and airtime APIs")
Signed-off-by: Toke Høiland-Jørgensen <toke@redhat.com>
---
 drivers/net/wireless/ath/ath9k/xmit.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Kalle Valo Feb. 26, 2019, 1:07 p.m. UTC | #1
Toke Høiland-Jørgensen wrote:

> Since ath9k reports airtime usage directly using the
> ieee80211_report_airtime() callback, it shouldn't also report it using the
> tx_time in status. Make sure the field is zeroed before TX status is
> reported to avoid spurious airtime being accounted by bits being left over
> from earlier uses of the cb.
> 
> Fixes: 89cea7493a34 ("ath9k: Switch to mac80211 TXQ scheduling and airtime APIs")
> Signed-off-by: Toke Høiland-Jørgensen <toke@redhat.com>
> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>

Patch applied to ath-next branch of ath.git, thanks.

cc591d77aba1 ath9k: Make sure to zero status.tx_time before reporting TX status
diff mbox series

Patch

diff --git a/drivers/net/wireless/ath/ath9k/xmit.c b/drivers/net/wireless/ath/ath9k/xmit.c
index 06e0c5a6fab6..773d428ff1b0 100644
--- a/drivers/net/wireless/ath/ath9k/xmit.c
+++ b/drivers/net/wireless/ath/ath9k/xmit.c
@@ -2552,6 +2552,9 @@  static void ath_tx_rc_status(struct ath_softc *sc, struct ath_buf *bf,
 	}
 
 	tx_info->status.rates[tx_rateindex].count = ts->ts_longretry + 1;
+
+	/* we report airtime in ath_tx_count_airtime(), don't report twice */
+	tx_info->status.tx_time = 0;
 }
 
 static void ath_tx_processq(struct ath_softc *sc, struct ath_txq *txq)