ath9k: Fix TX status reporting for retries and MCS index
PATCH 1/1 ath9k: Fix TX status reporting for retries and MCS index
The count field in struct ieee80211_tx_rate does not include the final successful attempt, so only report retries here.
Fix the struct ieee80211_tx_rate::idx field when MCS was used. It is supposed to be the MCS index, not an internal index to the rate control algorithm table.
Signed-off-by Jouni Malinen <[email protected]>
--- drivers/net/wireless/ath9k/xmit.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-)
drivers/net/wireless/ath9k/xmit.c +9 -1
@@ -125,7 +125,15 @@ static void ath_tx_complete(struct ath_s tx_info->flags |=IEEE80211_TX_STAT_ACK ; } - tx_info->status.rates[0 ].count = tx_status->retries +1 ; + tx_info->status.rates[0 ].count = tx_status->retries; +if (tx_info->status.rates[0 ].flags &IEEE80211_TX_RC_MCS ) { +/* Change idx from internal table index to MCS index */ +int idx = tx_info->status.rates[0 ].idx; +struct ath_rate_table *rate_table = sc->cur_rate_table; +if (idx >=0 && idx < rate_table->rate_cnt) + tx_info->status.rates[0 ].idx = + rate_table->info[idx].ratecode &0x7f ; + }ieee80211_tx_status (hw, skb); }
Signature · 1 line
Jouni Malinen PGP id EFC895FA