diff options
Diffstat (limited to 'drivers/net/ethernet/amd')
-rw-r--r-- | drivers/net/ethernet/amd/xgbe/xgbe-dev.c | 3 | ||||
-rw-r--r-- | drivers/net/ethernet/amd/xgbe/xgbe-drv.c | 4 |
2 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-dev.c b/drivers/net/ethernet/amd/xgbe/xgbe-dev.c index f6014d330b2e..9b1d9fa68257 100644 --- a/drivers/net/ethernet/amd/xgbe/xgbe-dev.c +++ b/drivers/net/ethernet/amd/xgbe/xgbe-dev.c | |||
@@ -1558,6 +1558,9 @@ static int xgbe_dev_read(struct xgbe_channel *channel) | |||
1558 | if (XGMAC_GET_BITS_LE(rdesc->desc3, RX_NORMAL_DESC3, OWN)) | 1558 | if (XGMAC_GET_BITS_LE(rdesc->desc3, RX_NORMAL_DESC3, OWN)) |
1559 | return 1; | 1559 | return 1; |
1560 | 1560 | ||
1561 | /* Make sure descriptor fields are read after reading the OWN bit */ | ||
1562 | rmb(); | ||
1563 | |||
1561 | #ifdef XGMAC_ENABLE_RX_DESC_DUMP | 1564 | #ifdef XGMAC_ENABLE_RX_DESC_DUMP |
1562 | xgbe_dump_rx_desc(ring, rdesc, ring->cur); | 1565 | xgbe_dump_rx_desc(ring, rdesc, ring->cur); |
1563 | #endif | 1566 | #endif |
diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-drv.c b/drivers/net/ethernet/amd/xgbe/xgbe-drv.c index 0544931329d1..eebb787251c4 100644 --- a/drivers/net/ethernet/amd/xgbe/xgbe-drv.c +++ b/drivers/net/ethernet/amd/xgbe/xgbe-drv.c | |||
@@ -1791,6 +1791,10 @@ static int xgbe_tx_poll(struct xgbe_channel *channel) | |||
1791 | if (!hw_if->tx_complete(rdesc)) | 1791 | if (!hw_if->tx_complete(rdesc)) |
1792 | break; | 1792 | break; |
1793 | 1793 | ||
1794 | /* Make sure descriptor fields are read after reading the OWN | ||
1795 | * bit */ | ||
1796 | rmb(); | ||
1797 | |||
1794 | #ifdef XGMAC_ENABLE_TX_DESC_DUMP | 1798 | #ifdef XGMAC_ENABLE_TX_DESC_DUMP |
1795 | xgbe_dump_tx_desc(ring, ring->dirty, 1, 0); | 1799 | xgbe_dump_tx_desc(ring, ring->dirty, 1, 0); |
1796 | #endif | 1800 | #endif |