Crashes with 3c59x.c:v0.99L especially on DELL WS

Richard Black rjb@dcs.gla.ac.uk
Thu Aug 26 04:59:07 1999


Hello All,

I have a DELL WS 400 with:

3c59x.c:v0.99L 5/28/99 Donald Becker http://cesdis.gsfc.nasa.gov/linux/drivers/
vortex.html
eth0: 3Com 3c905 Boomerang 100baseTx at 0xfcc0,  00:c0:4f:a3:10:1c, IRQ 14
  8K word-wide RAM 3:5 Rx:Tx split, MII interface.
  MII transceiver found at address 24, status 786f.
  Enabling bus-master transmits and whole-frame receives.


I was seeing serious problems with the 0.99H driver as shipped with the 2.2.x 
kernel series. Specifically I was getting crashes on this class of machine 
every day or so.  Sometimes I would get an on screen oops about bad reference 
to address 00000070 and sometimes the machine would just freeze up.

I tracked the bad address 00000070 down to line 1660:

	DEV_FREE_SKB(vp->tx_skb); /* Release the transfered buffer */

sometimes this was attempting to free a NULL pointer as the skbuff and the 
skbuff code would make a reference to base+0x70 as part of the freeing 
operation.

I then changed that to:

	if (vp->tx_skb) {
		DEV_FREE_SKB(vp->tx_skb); /* Release the transfered buffer */
		vp->tx_skb = NULL;
	} else
		printk(KERN_DEBUG "vortex would have crashed here (RJB)\n");


and now what I see is that I get in syslog:

Aug 26 05:33:28 easter kernel: eth0: Too much work in interrupt, status e481.  
Temporarily disabling functions (7b7e).
Aug 26 05:34:09 easter kernel: eth0: transmit timed out, tx_status 00 status 
e900.
Aug 26 05:34:14 easter kernel: eth0: transmit timed out, tx_status 00 status 
e000.
Aug 26 05:34:49 easter last message repeated 7 times
Aug 26 05:35:54 easter last message repeated 13 times
Aug 26 05:36:44 easter last message repeated 10 times
Aug 26 05:36:46 easter ypbind[380]: Host name lookup failure 
Aug 26 05:36:49 easter kernel: eth0: transmit timed out, tx_status 00 status 
e000.
Aug 26 05:37:24 easter last message repeated 7 times
Aug 26 05:38:29 easter last message repeated 13 times
Aug 26 05:39:24 easter last message repeated 11 times
Aug 26 05:39:26 easter ypbind[380]: Host name lookup failure 
Aug 26 05:39:29 easter kernel: eth0: transmit timed out, tx_status 00 status 
e000.
Aug 26 05:40:04 easter last message repeated 7 times
Aug 26 05:41:09 easter last message repeated 13 times
Aug 26 05:42:14 easter last message repeated 13 times
Aug 26 05:42:34 easter last message repeated 4 times
Aug 26 05:42:36 easter ypbind[380]: Host name lookup failure 
Aug 26 05:42:39 easter kernel: eth0: transmit timed out, tx_status 00 status 
e000.
Aug 26 05:43:14 easter last message repeated 7 times
Aug 26 05:44:19 easter last message repeated 13 times
Aug 26 05:45:14 easter last message repeated 11 times
Aug 26 05:45:17 easter ypbind[380]: Host name lookup failure 


I now recognise the (7b7e) as sometimes when I previously got the crash that 
was the only thing visible on the screen above the Oops message.


Can anyone provide a fix for these bugs?

Thanks,

Richard.