summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/freescale/fec_main.c
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2014-03-12 17:52:38 +0000
committerRussell King <rmk+kernel@arm.linux.org.uk>2014-10-17 14:35:53 +0100
commitba62cb8da3093e15fd0db8a5a0bcd612e6dff1e3 (patch)
treed5235eb960f9884026fb9b7c5c63fe660f66459d /drivers/net/ethernet/freescale/fec_main.c
parentcf532149ae68a1eeb31d2a07f0949ac116793b4d (diff)
net:fec: move syncing of receive buffer back to device directly after copy
Move the syncing for the DMA buffer back to the device immediately after we've done with copying data from it. This means the logic in the receive path handing the copying of data is now located together. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'drivers/net/ethernet/freescale/fec_main.c')
-rw-r--r--drivers/net/ethernet/freescale/fec_main.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c
index d90fd50f8881..496e60228521 100644
--- a/drivers/net/ethernet/freescale/fec_main.c
+++ b/drivers/net/ethernet/freescale/fec_main.c
@@ -1126,10 +1126,11 @@ fec_enet_rx(struct net_device *ndev, int budget)
skb_copy_to_linear_data(skb, data, pkt_len);
}
+ dma_sync_single_for_device(&fep->pdev->dev, bdp->bd.cbd_bufaddr,
+ FEC_ENET_RX_FRSIZE, DMA_FROM_DEVICE);
+
fec_enet_receive(skb, bdp, ndev);
- dma_sync_single_for_device(&fep->pdev->dev, bdp->bd.cbd_bufaddr,
- FEC_ENET_RX_FRSIZE, DMA_FROM_DEVICE);
rx_processing_done:
if (fep->flags & FEC_FLAG_BUFDESC_EX) {
bdp->ebd.cbd_esc = BD_ENET_RX_INT;