Hi,

We had a problem with a 3c590 card, that after a while stopped
transmitting packets, and the only way to get it to work again was
to unload the driver and restart the network. Every time it happened,
a "Transmit error, Tx status register 90." (from time to time more
bits in the Tx status register were set) message was logged, followed
by a lot of "transmit timed out, tx_status 00 status e000." after a
few seconds as shown in the log dump below (21:05-21:20).

After trying several different things, I noticed, that the
"dev->tbusy" flag appararently never was cleared, when the transmit
timeout occured, so I tried adding the patch shown below, and this
seems to have solved the problem as shown by the log dump
(22:43-23:46). I am however not certain that this is the right way to
do it for all the cards supported by the 3c59x driver.

This happened on kernel 2.2.15 - I tried both the driver, that comes
with 2.2.15 and the driver from 2.2.16pre4 with the same results. The
patch below is made against the 2.2.16pre4 driver.


May 23 21:05:15 socks kernel: epic100.c:v1.07h 8/18/99 Donald Becker 
http://cesdis.gsfc.nasa.gov/linux/drivers/epic100.html 
May 23 21:05:15 socks kernel: eth0: SMSC EPIC/100 83c170 at 0x6100, IRQ 9, 
00:e0:29:22:f2:b7. 
May 23 21:05:15 socks kernel: eth0: MII transceiver #3 control 3000 status 7809. 
May 23 21:05:15 socks kernel: eth0:  Autonegotiation advertising 01e1 link partner 
0001. 
May 23 21:05:17 socks kernel: 3c59x.c:v0.99H 19May00 Donald Becker 
http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html 
May 23 21:05:17 socks kernel: eth1: 3Com 3c590 Vortex 10Mbps at 0x6200,  
00:a0:24:cb:d2:e4, IRQ 10 
May 23 21:05:17 socks kernel:   8K byte-wide RAM 1:1 Rx:Tx split, autoselect/10baseT 
interface. 
May 23 21:15:59 socks kernel: eth1: Transmit error, Tx status register 90. 
May 23 21:16:06 socks kernel: eth1: transmit timed out, tx_status 00 status e000. 
May 23 21:16:41 socks last message repeated 7 times
May 23 21:17:46 socks last message repeated 13 times
May 23 21:18:51 socks last message repeated 13 times
May 23 21:19:56 socks last message repeated 13 times
May 23 21:20:11 socks last message repeated 3 times
...
May 23 22:43:32 socks kernel: epic100.c:v1.07h 8/18/99 Donald Becker 
http://cesdis.gsfc.nasa.gov/linux/drivers/epic100.html 
May 23 22:43:32 socks kernel: eth0: SMSC EPIC/100 83c170 at 0x6100, IRQ 9, 
00:e0:29:22:f2:b7. 
May 23 22:43:32 socks kernel: eth0: MII transceiver #3 control 3000 status 7809. 
May 23 22:43:32 socks kernel: eth0:  Autonegotiation advertising 01e1 link partner 
0001. 
May 23 22:43:33 socks kernel: 3c59x.c:v0.99H 19May00 Donald Becker 
http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html 
May 23 22:43:33 socks kernel: eth1: 3Com 3c590 Vortex 10Mbps at 0x6200,  
00:a0:24:cb:d2:e4, IRQ 10 
May 23 22:43:33 socks kernel:   8K byte-wide RAM 1:1 Rx:Tx split, autoselect/10baseT 
interface. 
May 23 23:19:56 socks kernel: eth1: Transmit error, Tx status register 90. 
May 23 23:20:05 socks kernel: eth1: transmit timed out, tx_status 00 status e000. 
May 23 23:24:17 socks kernel: eth1: Transmit error, Tx status register 90. 
May 23 23:24:25 socks kernel: eth1: transmit timed out, tx_status 00 status e000. 
May 23 23:46:35 socks kernel: eth1: Transmit error, Tx status register 90. 


--- 3c59x.c.orig        Wed May 24 00:15:19 2000
+++ 3c59x.c     Wed May 24 00:20:21 2000
@@ -1401,6 +1401,12 @@
        outw(TxEnable, ioaddr + EL3_CMD);
        dev->trans_start = jiffies;
 
+       /*
+        * AKP: Clear the transmitter busy flag
+        * otherwise the driver will never transmit again
+        */
+       dev->tbusy = 0;
+
        /* Switch to register set 7 for normal use. */
        EL3WINDOW(7);
 }


Regards,
Anders K. Pedersen
-
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to [EMAIL PROTECTED]

Reply via email to