summaryrefslogtreecommitdiff
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
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>
-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;