dma_sync_to_device() is not needed when only device modifies the buffer.
See: DMA-API.txt, part. Id, DMA_FROM_DEVICE description.

Signed-off-by: Michał Mirosław <[email protected]>
---
 drivers/net/arm/ep93xx_eth.c         |    3 ---
 drivers/net/b44.c                    |    4 ----
 drivers/net/bnx2.c                   |    4 ----
 drivers/net/bnx2x/bnx2x_cmn.h        |    5 -----
 drivers/net/cassini.c                |   12 ------------
 drivers/net/cxgb3/sge.c              |    3 ---
 drivers/net/e100.c                   |    3 ---
 drivers/net/e1000e/netdev.c          |    4 +---
 drivers/net/mlx4/en_rx.c             |    2 --
 drivers/net/qlge/qlge_main.c         |   11 -----------
 drivers/net/r8169.c                  |    1 -
 drivers/net/s2io.c                   |    6 +-----
 drivers/net/skge.c                   |    3 ---
 drivers/net/sky2.c                   |    2 --
 drivers/net/tg3.c                    |    1 -
 drivers/net/tokenring/olympic.c      |    6 ------
 drivers/net/vxge/vxge-main.c         |    3 ---
 drivers/net/wireless/b43legacy/dma.c |   19 -------------------
 18 files changed, 2 insertions(+), 90 deletions(-)

diff --git a/drivers/net/arm/ep93xx_eth.c b/drivers/net/arm/ep93xx_eth.c
index 4317af8..ba3bf43 100644
--- a/drivers/net/arm/ep93xx_eth.c
+++ b/drivers/net/arm/ep93xx_eth.c
@@ -289,9 +289,6 @@ static int ep93xx_rx(struct net_device *dev, int processed, 
int budget)
                        dma_sync_single_for_cpu(dev->dev.parent, rxd->buf_addr,
                                                length, DMA_FROM_DEVICE);
                        skb_copy_to_linear_data(skb, ep->rx_buf[entry], length);
-                       dma_sync_single_for_device(dev->dev.parent,
-                                                  rxd->buf_addr, length,
-                                                  DMA_FROM_DEVICE);
                        skb_put(skb, length);
                        skb->protocol = eth_type_trans(skb, dev);
 
diff --git a/drivers/net/b44.c b/drivers/net/b44.c
index 6c4ef96..033029f 100644
--- a/drivers/net/b44.c
+++ b/drivers/net/b44.c
@@ -739,10 +739,6 @@ static void b44_recycle_rx(struct b44 *bp, int src_idx, 
u32 dest_idx_unmasked)
                b44_sync_dma_desc_for_device(bp->sdev, bp->rx_ring_dma,
                                             dest_idx * sizeof(*dest_desc),
                                             DMA_BIDIRECTIONAL);
-
-       dma_sync_single_for_device(bp->sdev->dma_dev, dest_map->mapping,
-                                  RX_PKT_BUF_SZ,
-                                  DMA_FROM_DEVICE);
 }
 
 static int b44_rx(struct b44 *bp, int budget)
diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c
index 7915d14..d627886 100644
--- a/drivers/net/bnx2.c
+++ b/drivers/net/bnx2.c
@@ -2927,10 +2927,6 @@ bnx2_reuse_rx_skb(struct bnx2 *bp, struct 
bnx2_rx_ring_info *rxr,
        cons_rx_buf = &rxr->rx_buf_ring[cons];
        prod_rx_buf = &rxr->rx_buf_ring[prod];
 
-       dma_sync_single_for_device(&bp->pdev->dev,
-               dma_unmap_addr(cons_rx_buf, mapping),
-               BNX2_RX_OFFSET + BNX2_RX_COPY_THRESH, PCI_DMA_FROMDEVICE);
-
        rxr->rx_prod_bseq += bp->rx_buf_use_size;
 
        prod_rx_buf->skb = skb;
diff --git a/drivers/net/bnx2x/bnx2x_cmn.h b/drivers/net/bnx2x/bnx2x_cmn.h
index c016e20..c9e49a0 100644
--- a/drivers/net/bnx2x/bnx2x_cmn.h
+++ b/drivers/net/bnx2x/bnx2x_cmn.h
@@ -923,16 +923,11 @@ static inline int bnx2x_alloc_rx_skb(struct bnx2x *bp,
 static inline void bnx2x_reuse_rx_skb(struct bnx2x_fastpath *fp,
                                      u16 cons, u16 prod)
 {
-       struct bnx2x *bp = fp->bp;
        struct sw_rx_bd *cons_rx_buf = &fp->rx_buf_ring[cons];
        struct sw_rx_bd *prod_rx_buf = &fp->rx_buf_ring[prod];
        struct eth_rx_bd *cons_bd = &fp->rx_desc_ring[cons];
        struct eth_rx_bd *prod_bd = &fp->rx_desc_ring[prod];
 
-       dma_sync_single_for_device(&bp->pdev->dev,
-                                  dma_unmap_addr(cons_rx_buf, mapping),
-                                  RX_COPY_THRESH, DMA_FROM_DEVICE);
-
        dma_unmap_addr_set(prod_rx_buf, mapping,
                           dma_unmap_addr(cons_rx_buf, mapping));
        prod_rx_buf->skb = cons_rx_buf->skb;
diff --git a/drivers/net/cassini.c b/drivers/net/cassini.c
index b414f5a..788ab13 100644
--- a/drivers/net/cassini.c
+++ b/drivers/net/cassini.c
@@ -1997,8 +1997,6 @@ static int cas_rx_process_pkt(struct cas *cp, struct 
cas_rx_comp *rxc,
                                    PCI_DMA_FROMDEVICE);
                addr = cas_page_map(page->buffer);
                memcpy(p, addr + off, i);
-               pci_dma_sync_single_for_device(cp->pdev, page->dma_addr + off, 
i,
-                                   PCI_DMA_FROMDEVICE);
                cas_page_unmap(addr);
                RX_USED_ADD(page, 0x100);
                p += hlen;
@@ -2032,8 +2030,6 @@ static int cas_rx_process_pkt(struct cas *cp, struct 
cas_rx_comp *rxc,
                if (p == (char *) skb->data) { /* not split */
                        addr = cas_page_map(page->buffer);
                        memcpy(p, addr + off, RX_COPY_MIN);
-                       pci_dma_sync_single_for_device(cp->pdev, page->dma_addr 
+ off, i,
-                                       PCI_DMA_FROMDEVICE);
                        cas_page_unmap(addr);
                        off += RX_COPY_MIN;
                        swivel = RX_COPY_MIN;
@@ -2063,9 +2059,6 @@ static int cas_rx_process_pkt(struct cas *cp, struct 
cas_rx_comp *rxc,
                        pci_dma_sync_single_for_cpu(cp->pdev, page->dma_addr,
                                            hlen + cp->crc_size,
                                            PCI_DMA_FROMDEVICE);
-                       pci_dma_sync_single_for_device(cp->pdev, page->dma_addr,
-                                           hlen + cp->crc_size,
-                                           PCI_DMA_FROMDEVICE);
 
                        skb_shinfo(skb)->nr_frags++;
                        skb->data_len += hlen;
@@ -2106,8 +2099,6 @@ static int cas_rx_process_pkt(struct cas *cp, struct 
cas_rx_comp *rxc,
                                    PCI_DMA_FROMDEVICE);
                addr = cas_page_map(page->buffer);
                memcpy(p, addr + off, i);
-               pci_dma_sync_single_for_device(cp->pdev, page->dma_addr + off, 
i,
-                                   PCI_DMA_FROMDEVICE);
                cas_page_unmap(addr);
                if (p == (char *) skb->data) /* not split */
                        RX_USED_ADD(page, cp->mtu_stride);
@@ -2124,9 +2115,6 @@ static int cas_rx_process_pkt(struct cas *cp, struct 
cas_rx_comp *rxc,
                                            PCI_DMA_FROMDEVICE);
                        addr = cas_page_map(page->buffer);
                        memcpy(p, addr, dlen + cp->crc_size);
-                       pci_dma_sync_single_for_device(cp->pdev, page->dma_addr,
-                                           dlen + cp->crc_size,
-                                           PCI_DMA_FROMDEVICE);
                        cas_page_unmap(addr);
                        RX_USED_ADD(page, dlen + cp->crc_size);
                }
diff --git a/drivers/net/cxgb3/sge.c b/drivers/net/cxgb3/sge.c
index 76bf589..3196fdd 100644
--- a/drivers/net/cxgb3/sge.c
+++ b/drivers/net/cxgb3/sge.c
@@ -517,9 +517,6 @@ nomem:                              q->alloc_failed++;
                        dma_unmap_addr_set(sd, dma_addr, mapping);
 
                        add_one_rx_chunk(mapping, d, q->gen);
-                       pci_dma_sync_single_for_device(adap->pdev, mapping,
-                                               q->buf_size - SGE_PG_RSVD,
-                                               PCI_DMA_FROMDEVICE);
                } else {
                        void *buf_start;
 
diff --git a/drivers/net/e100.c b/drivers/net/e100.c
index c1352c6..73034af 100644
--- a/drivers/net/e100.c
+++ b/drivers/net/e100.c
@@ -1944,9 +1944,6 @@ static int e100_rx_indicate(struct nic *nic, struct rx 
*rx,
 
                        if (ioread8(&nic->csr->scb.status) & rus_no_res)
                                nic->ru_running = RU_SUSPENDED;
-               pci_dma_sync_single_for_device(nic->pdev, rx->dma_addr,
-                                              sizeof(struct rfd),
-                                              PCI_DMA_FROMDEVICE);
                return -ENODATA;
        }
 
diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c
index ed7a93d..f9b16cf 100644
--- a/drivers/net/e1000e/netdev.c
+++ b/drivers/net/e1000e/netdev.c
@@ -1172,12 +1172,10 @@ static bool e1000_clean_rx_irq_ps(struct e1000_adapter 
*adapter,
                         * very long
                         */
                        dma_sync_single_for_cpu(&pdev->dev, ps_page->dma,
-                                               PAGE_SIZE, DMA_FROM_DEVICE);
+                                               l1, DMA_FROM_DEVICE);
                        vaddr = kmap_atomic(ps_page->page, KM_SKB_DATA_SOFTIRQ);
                        memcpy(skb_tail_pointer(skb), vaddr, l1);
                        kunmap_atomic(vaddr, KM_SKB_DATA_SOFTIRQ);
-                       dma_sync_single_for_device(&pdev->dev, ps_page->dma,
-                                                  PAGE_SIZE, DMA_FROM_DEVICE);
 
                        /* remove the CRC */
                        if (!(adapter->flags2 & FLAG2_CRC_STRIPPING))
diff --git a/drivers/net/mlx4/en_rx.c b/drivers/net/mlx4/en_rx.c
index 5197b50..ee15295 100644
--- a/drivers/net/mlx4/en_rx.c
+++ b/drivers/net/mlx4/en_rx.c
@@ -483,8 +483,6 @@ static struct sk_buff *mlx4_en_rx_skb(struct mlx4_en_priv 
*priv,
                dma_sync_single_for_cpu(&mdev->pdev->dev, dma, length,
                                        DMA_FROM_DEVICE);
                skb_copy_to_linear_data(skb, va, length);
-               dma_sync_single_for_device(&mdev->pdev->dev, dma, length,
-                                          DMA_FROM_DEVICE);
                skb->tail += length;
        } else {
 
diff --git a/drivers/net/qlge/qlge_main.c b/drivers/net/qlge/qlge_main.c
index 68fbfac..48dd59b 100644
--- a/drivers/net/qlge/qlge_main.c
+++ b/drivers/net/qlge/qlge_main.c
@@ -1195,9 +1195,6 @@ static void ql_update_lbq(struct ql_adapter *qdev, struct 
rx_ring *rx_ring)
                                        rx_ring->lbq_buf_size);
                                *lbq_desc->addr = cpu_to_le64(map);
 
-                       pci_dma_sync_single_for_device(qdev->pdev, map,
-                                               rx_ring->lbq_buf_size,
-                                               PCI_DMA_FROMDEVICE);
                        clean_idx++;
                        if (clean_idx == rx_ring->lbq_len)
                                clean_idx = 0;
@@ -1801,14 +1798,6 @@ static struct sk_buff *ql_build_rx_skb(struct ql_adapter 
*qdev,
                                                    PCI_DMA_FROMDEVICE);
                        memcpy(skb_put(skb, length),
                               sbq_desc->p.skb->data, length);
-                       pci_dma_sync_single_for_device(qdev->pdev,
-                                                      dma_unmap_addr
-                                                      (sbq_desc,
-                                                       mapaddr),
-                                                      dma_unmap_len
-                                                      (sbq_desc,
-                                                       maplen),
-                                                      PCI_DMA_FROMDEVICE);
                } else {
                        netif_printk(qdev, rx_status, KERN_DEBUG, qdev->ndev,
                                     "%d bytes in a single small buffer.\n",
diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c
index ef1a43d..e2c2884 100644
--- a/drivers/net/r8169.c
+++ b/drivers/net/r8169.c
@@ -5005,7 +5005,6 @@ static struct sk_buff *rtl8169_try_rx_copy(void *data,
        skb = netdev_alloc_skb_ip_align(tp->dev, pkt_size);
        if (skb)
                memcpy(skb->data, data, pkt_size);
-       dma_sync_single_for_device(d, addr, pkt_size, DMA_FROM_DEVICE);
 
        return skb;
 }
diff --git a/drivers/net/s2io.c b/drivers/net/s2io.c
index 043850b..acf7105 100644
--- a/drivers/net/s2io.c
+++ b/drivers/net/s2io.c
@@ -2636,11 +2636,7 @@ static int fill_rx_buffers(struct s2io_nic *nic, struct 
ring_info *ring,
                                if (pci_dma_mapping_error(nic->pdev,
                                                          rxdp3->Buffer0_ptr))
                                        goto pci_map_failed;
-                       } else
-                               pci_dma_sync_single_for_device(ring->pdev,
-                                                              
(dma_addr_t)rxdp3->Buffer0_ptr,
-                                                              BUF0_LEN,
-                                                              
PCI_DMA_FROMDEVICE);
+                       }
 
                        rxdp->Control_2 = SET_BUFFER0_SIZE_3(BUF0_LEN);
                        if (ring->rxd_mode == RXD_MODE_3B) {
diff --git a/drivers/net/skge.c b/drivers/net/skge.c
index 98ec614..11e5229 100644
--- a/drivers/net/skge.c
+++ b/drivers/net/skge.c
@@ -3031,9 +3031,6 @@ static struct sk_buff *skge_rx_get(struct net_device *dev,
                                            dma_unmap_addr(e, mapaddr),
                                            len, PCI_DMA_FROMDEVICE);
                skb_copy_from_linear_data(e->skb, skb->data, len);
-               pci_dma_sync_single_for_device(skge->hw->pdev,
-                                              dma_unmap_addr(e, mapaddr),
-                                              len, PCI_DMA_FROMDEVICE);
                skge_rx_reuse(e, skge->rx_buf_size);
        } else {
                struct sk_buff *nskb;
diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c
index 57339da..5f720b9 100644
--- a/drivers/net/sky2.c
+++ b/drivers/net/sky2.c
@@ -2422,8 +2422,6 @@ static struct sk_buff *receive_copy(struct sky2_port 
*sky2,
                skb_copy_from_linear_data(re->skb, skb->data, length);
                skb->ip_summed = re->skb->ip_summed;
                skb->csum = re->skb->csum;
-               pci_dma_sync_single_for_device(sky2->hw->pdev, re->data_addr,
-                                              length, PCI_DMA_FROMDEVICE);
                re->skb->ip_summed = CHECKSUM_NONE;
                skb_put(skb, length);
        }
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c
index 8211b9a..b43d473 100644
--- a/drivers/net/tg3.c
+++ b/drivers/net/tg3.c
@@ -5002,7 +5002,6 @@ static int tg3_rx(struct tg3_napi *tnapi, int budget)
                        skb_put(copy_skb, len);
                        pci_dma_sync_single_for_cpu(tp->pdev, dma_addr, len, 
PCI_DMA_FROMDEVICE);
                        skb_copy_from_linear_data(skb, copy_skb->data, len);
-                       pci_dma_sync_single_for_device(tp->pdev, dma_addr, len, 
PCI_DMA_FROMDEVICE);
 
                        /* We'll reuse the original ring buffer. */
                        skb = copy_skb;
diff --git a/drivers/net/tokenring/olympic.c b/drivers/net/tokenring/olympic.c
index e3855ae..30fb6e8 100644
--- a/drivers/net/tokenring/olympic.c
+++ b/drivers/net/tokenring/olympic.c
@@ -837,9 +837,6 @@ static void olympic_rx(struct net_device *dev)
                                                        
skb_copy_from_linear_data(olympic_priv->rx_ring_skb[rx_ring_last_received],
                                                                      
skb_put(skb,length - 4),
                                                                      length - 
4);
-                                                       
pci_dma_sync_single_for_device(olympic_priv->pdev,
-                                                               
le32_to_cpu(olympic_priv->olympic_rx_ring[rx_ring_last_received].buffer),
-                                                               
olympic_priv->pkt_buf_sz,PCI_DMA_FROMDEVICE) ;
                                                        skb->protocol = 
tr_type_trans(skb,dev) ; 
                                                        netif_rx(skb) ; 
                                                } 
@@ -856,9 +853,6 @@ static void olympic_rx(struct net_device *dev)
                                                        
skb_copy_from_linear_data(olympic_priv->rx_ring_skb[rx_ring_last_received],
                                                                      
skb_put(skb, cpy_length),
                                                                      
cpy_length);
-                                                       
pci_dma_sync_single_for_device(olympic_priv->pdev,
-                                                               
le32_to_cpu(olympic_priv->olympic_rx_ring[rx_ring_last_received].buffer),
-                                                               
olympic_priv->pkt_buf_sz,PCI_DMA_FROMDEVICE) ;
                                                } while (--i) ; 
                                                skb_trim(skb,skb->len-4) ; 
                                                skb->protocol = 
tr_type_trans(skb,dev);
diff --git a/drivers/net/vxge/vxge-main.c b/drivers/net/vxge/vxge-main.c
index 15d878b..00d435d 100644
--- a/drivers/net/vxge/vxge-main.c
+++ b/drivers/net/vxge/vxge-main.c
@@ -323,9 +323,6 @@ vxge_rx_complete(struct vxge_ring *ring, struct sk_buff 
*skb, u16 vlan,
 static inline void vxge_re_pre_post(void *dtr, struct vxge_ring *ring,
                                    struct vxge_rx_priv *rx_priv)
 {
-       pci_dma_sync_single_for_device(ring->pdev,
-               rx_priv->data_dma, rx_priv->data_size, PCI_DMA_FROMDEVICE);
-
        vxge_hw_ring_rxd_1b_set(dtr, rx_priv->data_dma, rx_priv->data_size);
        vxge_hw_ring_rxd_pre_post(ring->handle, dtr);
 }
diff --git a/drivers/net/wireless/b43legacy/dma.c 
b/drivers/net/wireless/b43legacy/dma.c
index c33934a..11839be 100644
--- a/drivers/net/wireless/b43legacy/dma.c
+++ b/drivers/net/wireless/b43legacy/dma.c
@@ -433,17 +433,6 @@ void sync_descbuffer_for_cpu(struct b43legacy_dmaring 
*ring,
 }
 
 static inline
-void sync_descbuffer_for_device(struct b43legacy_dmaring *ring,
-                               dma_addr_t addr,
-                               size_t len)
-{
-       B43legacy_WARN_ON(ring->tx);
-
-       dma_sync_single_for_device(ring->dev->dev->dma_dev,
-                                  addr, len, DMA_FROM_DEVICE);
-}
-
-static inline
 void free_descriptor_buffer(struct b43legacy_dmaring *ring,
                            struct b43legacy_dmadesc_meta *meta,
                            int irq_context)
@@ -1556,8 +1545,6 @@ static void dma_rx(struct b43legacy_dmaring *ring,
                }
                b43legacy_handle_hwtxstatus(ring->dev, hw);
                /* recycle the descriptor buffer. */
-               sync_descbuffer_for_device(ring, meta->dmaaddr,
-                                          ring->rx_buffersize);
 
                return;
        }
@@ -1573,8 +1560,6 @@ static void dma_rx(struct b43legacy_dmaring *ring,
                } while (len == 0 && i++ < 5);
                if (unlikely(len == 0)) {
                        /* recycle the descriptor buffer. */
-                       sync_descbuffer_for_device(ring, meta->dmaaddr,
-                                                  ring->rx_buffersize);
                        goto drop;
                }
        }
@@ -1590,8 +1575,6 @@ static void dma_rx(struct b43legacy_dmaring *ring,
                while (1) {
                        desc = ops->idx2desc(ring, *slot, &meta);
                        /* recycle the descriptor buffer. */
-                       sync_descbuffer_for_device(ring, meta->dmaaddr,
-                                                  ring->rx_buffersize);
                        *slot = next_slot(ring, *slot);
                        cnt++;
                        tmp -= ring->rx_buffersize;
@@ -1609,8 +1592,6 @@ static void dma_rx(struct b43legacy_dmaring *ring,
        if (unlikely(err)) {
                b43legacydbg(ring->dev->wl, "DMA RX: setup_rx_descbuffer()"
                             " failed\n");
-               sync_descbuffer_for_device(ring, dmaaddr,
-                                          ring->rx_buffersize);
                goto drop;
        }
 
-- 
1.7.5.4


------------------------------------------------------------------------------
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security 
threats, fraudulent activity, and more. Splunk takes this data and makes 
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2d-c2
_______________________________________________
E1000-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel&#174; Ethernet, visit 
http://communities.intel.com/community/wired

Reply via email to