[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