Re: Time out problem with a HME card
Jorge Rivas <[email protected]> Tue, 25 Feb 2003 08:42:57 +0100
| Newsgroups | gmane.linux.suse.sparc |
|---|---|
| Organization | Cis Galicia |
| Message-ID | <[email protected]> |
El Lun 24 Feb 2003 17:58, Bertrand Sirodot escribió: > Hi all, > > I know this issue has been discussed before (there is > a thread about it in the April 2002 archive of the > mailing list), but I am still having the same problem. . . I have a Ultra-1, with the 2.4.19-pre3 working fine for 4 months, i could send you the kernel (but is a 5 Mb file), or you can compile a new keernel with this patch: //----------------------------------------------------------------------- List: linux-sparc Subject: Ultra1 2.4.x hme timeouts From: Joshua Uziel <[email protected]> Date: 2002-07-15 10:41:59 [Download message RAW] I had a quick look at this issue... mostly because I've set up my U1/170E to be my fiancee's web/email client and the hme would wedge up after a little web browsing, with a continuous loop of: NETDEV WATCHDOG: eth0: transmit timed out eth0: transmit timed out, restting eth0: Happy Status 03010000 TX[000003ff:00000101] eth0: Link is up using internal tranceiver at 100Mb/s, Half Duplex At any rate, I played around with enabling some of the driver's debug #defines and noticed I couldn't lock it up anymore afterwards. I reduced it down to just #define TXDEBUG ... then #undefing TXDEBUG and putting udelay(5) below the TXD()s in happy_meal_tx() ... the udelay(1) below all three... then one at a time. In the end, I've gotten a one-liner workaround (disclaimer: "works for me") that seems to make it go away. It can still be any number of things, with timing or compiling issues being (in my mind) the most likely. In the meantime, those of you who want to try and see if this helps you out are welcome to do so... --- drivers/net/sunhme.c.orig Mon Jul 15 02:38:27 2002 +++ drivers/net/sunhme.c Mon Jul 15 03:09:03 2002 @@ -1983,6 +1983,7 @@ } hp->tx_old = elem; TXD((">")); + udelay(1); if (netif_queue_stopped(dev) && TX_BUFFS_AVAIL(hp) > (MAX_SKB_FRAGS + 1)) - //----------------------------------------------------------------------- good luck... Jorge Rivas