Signed-off-by: Benjamin Herrenschmidt <b...@kernel.crashing.org>
---
 drivers/net/ethernet/faraday/ftgmac100.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/net/ethernet/faraday/ftgmac100.c 
b/drivers/net/ethernet/faraday/ftgmac100.c
index 86bda0a..594af30 100644
--- a/drivers/net/ethernet/faraday/ftgmac100.c
+++ b/drivers/net/ethernet/faraday/ftgmac100.c
@@ -442,6 +442,9 @@ static bool ftgmac100_rx_packet(struct ftgmac100 *priv, int 
*processed)
        if (!ftgmac100_rxdes_packet_ready(rxdes))
                return false;
 
+       /* Order subsequent reads with the test for the ready bit */
+       dma_rmb();
+
        /* We don't cope with fragmented RX packets */
        if (unlikely(!ftgmac100_rxdes_first_segment(rxdes) ||
                     !ftgmac100_rxdes_last_segment(rxdes)))
-- 
2.9.3

Reply via email to