[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-net
Subject:    3c590
From:       Bernhard Heidegger <hdg () edvz ! tu-graz ! ac ! at>
Date:       1996-04-29 17:03:11
[Download RAW message or body]

Hi!

I had great troubles with the 3c590 in a Pentium-166. I could receive
data but if I try to transmit a large packet (with ftp) I got transmit
timed out messages.
1.3.90 had a 2 line patch for 3c59x.c:
-                       outw(SetTxThreshold + 1536, ioaddr + EL3_CMD);
+                       outw(SetTxThreshold + (1536>>2), ioaddr + EL3_CMD);
So I tried the 3c590 with 1.3.95 (I have a second 3c509 in this machine).
It works with ftp, but from time to time I got a transmit time out
message. This should be no problem, but the process which (eventually)
caused the transmit timed out will hang (and I get lots of the famous
Socket destroy delayed ;-)
Today I had a look in the 3c59x.c and found this in vortex_start_xmit:
		/* Issue TX_RESET and TX_START commands. */
		outw(TxReset, ioaddr + EL3_CMD);
		{
			int i;
			for (i = 20; i >= 0 ; i--)
				if ( ! inw(ioaddr + EL3_STATUS) & CmdInProgress)
					break;
		}
		outw(TxEnable, ioaddr + EL3_CMD);
		dev->trans_start = jiffies;
		dev->tbusy = 0;
		return 0;

I'm not a good kernel hacker, but IMHO this return 0; isn't right, or?
Especially the 3c509.c driver didn't return after resetting the transmitter;
I think we could go further transmitting the skb after the reset?

Any comments are welcome.


Thanks in advance,
Bernhard.

---
+----------------------------+-------------------------------+
|   hdg@edvz.tu-graz.ac.at   |   bheide@iicm.tu-graz.ac.at   |
+----------------------------+-------------------------------+
| Bernhard Heidegger, Graz University of Technology, Austria |
+------------------------------------------------------------+
Worst day playing is better than best day working!

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic