ath9k: sync the dma buffer after changing the retry flag
authorFelix Fietkau <nbd@openwrt.org>
Thu, 15 Sep 2011 10:59:49 +0000 (12:59 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 19 Sep 2011 19:49:11 +0000 (15:49 -0400)
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 82718ee1386d1c6af431065c520d5b3fe0cd76a0..fa3dcfdf71743255771dd4c6f314687ff2ca0b0b 100644 (file)
@@ -262,6 +262,7 @@ static void ath_tx_set_retry(struct ath_softc *sc, struct ath_txq *txq,
                             struct sk_buff *skb)
 {
        struct ath_frame_info *fi = get_frame_info(skb);
+       struct ath_buf *bf = fi->bf;
        struct ieee80211_hdr *hdr;
 
        TX_STAT_INC(txq->axq_qnum, a_retries);
@@ -270,6 +271,8 @@ static void ath_tx_set_retry(struct ath_softc *sc, struct ath_txq *txq,
 
        hdr = (struct ieee80211_hdr *)skb->data;
        hdr->frame_control |= cpu_to_le16(IEEE80211_FCTL_RETRY);
+       dma_sync_single_for_device(sc->dev, bf->bf_buf_addr,
+               sizeof(*hdr), DMA_TO_DEVICE);
 }
 
 static struct ath_buf *ath_tx_get_buffer(struct ath_softc *sc)