summaryrefslogtreecommitdiffstats
path: root/drivers/net/designware.c
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2013-09-06 12:35:28 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2013-09-09 14:07:44 +0200
commit9743dce55a1ebaeae924eb5773088f994ba41b65 (patch)
treefcfe91c175eb9ed193115bf19e9799e035acedd6 /drivers/net/designware.c
parent91a68050e1607ca53f9733b90a43a0b473bce58e (diff)
downloadbarebox-9743dce55a1ebaeae924eb5773088f994ba41b65.tar.gz
barebox-9743dce55a1ebaeae924eb5773088f994ba41b65.tar.xz
net: designware: Fix broken cache invalidate
Move the cache invalidation of a received packet before we actually use it. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/net/designware.c')
-rw-r--r--drivers/net/designware.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/net/designware.c b/drivers/net/designware.c
index a6b32b9b2e..45de31c605 100644
--- a/drivers/net/designware.c
+++ b/drivers/net/designware.c
@@ -337,14 +337,15 @@ static int dwc_ether_rx(struct eth_device *dev)
length = (status & DESC_RXSTS_FRMLENMSK) >> \
DESC_RXSTS_FRMLENSHFT;
- net_receive(desc_p->dmamac_addr, length);
-
/*
* Make the current descriptor valid again and go to
* the next one
*/
dma_inv_range((unsigned long)desc_p->dmamac_addr,
(unsigned long)desc_p->dmamac_addr + length);
+
+ net_receive(desc_p->dmamac_addr, length);
+
desc_p->txrx_status |= DESC_RXSTS_OWNBYDMA;
/* Test the wrap-around condition. */