wil6210: Use cached copy of Tx descriptor
authorVladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>
Thu, 18 Apr 2013 11:33:52 +0000 (14:33 +0300)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 22 Apr 2013 19:20:25 +0000 (15:20 -0400)
Original Tx descriptor stored is in non-cached area for DMA;
copy it to the cached memory to speed-up access

Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/wil6210/txrx.c

index 3d9afc560246b45c9907f3aab7ae643986d5edb8..91454a4ec8bff716e1464decc246fa5af0b687b2 100644 (file)
@@ -789,9 +789,14 @@ void wil_tx_complete(struct wil6210_priv *wil, int ringid)
        wil_dbg_txrx(wil, "%s(%d)\n", __func__, ringid);
 
        while (!wil_vring_is_empty(vring)) {
-               volatile struct vring_tx_desc *d = &vring->va[vring->swtail].tx;
+               volatile struct vring_tx_desc *d1 =
+                                             &vring->va[vring->swtail].tx;
+               struct vring_tx_desc dd, *d = &dd;
                dma_addr_t pa;
                struct sk_buff *skb;
+
+               dd = *d1;
+
                if (!(d->dma.status & TX_DMA_STATUS_DU))
                        break;