ath9k: Fix no-ack frame status
authorSujith Manoharan <c_manoha@qca.qualcomm.com>
Fri, 19 Dec 2014 01:03:55 +0000 (06:33 +0530)
committerKalle Valo <kvalo@codeaurora.org>
Fri, 23 Jan 2015 17:00:37 +0000 (19:00 +0200)
Check if the frame has been completed without any
error and use IEEE80211_TX_STAT_NOACK_TRANSMITTED to
indicate successful transmission of no-ack frames.

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/ath/ath9k/xmit.c

index 1176d919569e8bcec5ed6451d684f49d17f5421c..1b8e75c4d2c2d6659b8901dd915b0209bfb928f7 100644 (file)
@@ -2489,9 +2489,12 @@ static void ath_tx_complete(struct ath_softc *sc, struct sk_buff *skb,
        if (sc->sc_ah->caldata)
                set_bit(PAPRD_PACKET_SENT, &sc->sc_ah->caldata->cal_flags);
 
-       if (!(tx_flags & ATH_TX_ERROR))
-               /* Frame was ACKed */
-               tx_info->flags |= IEEE80211_TX_STAT_ACK;
+       if (!(tx_flags & ATH_TX_ERROR)) {
+               if (tx_info->flags & IEEE80211_TX_CTL_NO_ACK)
+                       tx_info->flags |= IEEE80211_TX_STAT_NOACK_TRANSMITTED;
+               else
+                       tx_info->flags |= IEEE80211_TX_STAT_ACK;
+       }
 
        padpos = ieee80211_hdrlen(hdr->frame_control);
        padsize = padpos & 3;