diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2014-03-12 17:52:38 +0000 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2014-10-17 14:35:53 +0100 |
commit | ba62cb8da3093e15fd0db8a5a0bcd612e6dff1e3 (patch) | |
tree | d5235eb960f9884026fb9b7c5c63fe660f66459d /drivers/net/ethernet/freescale/fec_main.c | |
parent | cf532149ae68a1eeb31d2a07f0949ac116793b4d (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.c | 5 |
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; |