From: Jesse Huang <[email protected]>
This is a bug when Tx underrun happen, Tx reset without IPG_AC_FIFO will
cause Tx hold and can't transmit packet again.
Change Logs:
1. Tx reset when Tx Under run will cause Tx fail
2. ipg_nic_txcleanup() add "IPG_AC_FIFO" when Tx reset
---
drivers/net/ipg.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
7e88cf9432ea466a76f7b26d11a280300c8735f2
diff --git a/drivers/net/ipg.c b/drivers/net/ipg.c
index 56ffc80..ae22fa8 100644
--- a/drivers/net/ipg.c
+++ b/drivers/net/ipg.c
@@ -1036,7 +1036,7 @@ static void ipg_nic_txcleanup(struct net
IPG_DEBUG_MSG("Transmitter underrun.\n");
sp->stats.tx_fifo_errors++;
ipg_reset(dev, IPG_AC_TX_RESET |
- IPG_AC_DMA | IPG_AC_NETWORK);
+ IPG_AC_DMA | IPG_AC_NETWORK| IPG_AC_FIFO);
/* Re-configure after DMA reset. */
if ((ipg_io_config(dev) < 0) ||
--
1.3.GIT