ath9k: fix software retry counter tracking
authorFelix Fietkau <nbd@openwrt.org>
Sun, 28 Nov 2010 18:37:48 +0000 (19:37 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 29 Nov 2010 20:30:29 +0000 (15:30 -0500)
The recent tx path cleanups moved the software retry count tracking
from the ath_buf to the skb cb, however the actual counter update
referred to the wrong location, confusing block-ack window tracking.
Fix this by using the retries counter in the struct ath_frame_info.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/xmit.c

index 495432ec85a99d65cfc710737bbbf6fdb7878281..177a7b1de32263da4d46140c880abf64ed638f8b 100644 (file)
@@ -250,11 +250,11 @@ static void ath_tid_drain(struct ath_softc *sc, struct ath_txq *txq,
 static void ath_tx_set_retry(struct ath_softc *sc, struct ath_txq *txq,
                             struct sk_buff *skb)
 {
-       struct ieee80211_tx_info *tx_info = IEEE80211_SKB_CB(skb);
+       struct ath_frame_info *fi = get_frame_info(skb);
        struct ieee80211_hdr *hdr;
 
        TX_STAT_INC(txq->axq_qnum, a_retries);
-       if (tx_info->control.rates[4].count++ > 0)
+       if (fi->retries++ > 0)
                return;
 
        hdr = (struct ieee80211_hdr *)skb->data;