[eepro100] NIC hangs

Afzal, Naeem M naeem.m.afzal@intel.com
Wed Sep 11 18:02:01 2002


I am using eepro100 driver version (2.4.18-rmk7-ds1) 1.09j-t  for  82559ER
running on xscale based board and seeing this issue of NIC hanging after few
seconds of heavy traffic. 
But when I add a printk statement in speedo_start_xmit() to print SCBStatus
and SCBCmd the same code runs for almost 30mintues before it hangs. I tried
using nocache option to kernel, tried manually invalidating data cache
before calling tx and rx routines without any luck.  I can alway bring the
interface back by just doing "ifconfig eth0 down/up" but it hangs again.

 So basically two questions,

 what could be the reason that it hangs,

why would take longer to hang by just putting a printk

I would appreciate any suggestion.

naeem


here is output from the run.
.....
speedo_start_xmit: status 0050 cmd 0c00
speedo_start_xmit: status 0050 cmd 0c00
speedo_start_xmit: status 0050 cmd 0c00
speedo_start_xmit: status 4050 cmd 0c00    <--goes bad from here....
speedo_start_xmit: status 7050 cmd 0c00    
speedo_start_xmit: status 7050 cmd 0c00
speedo_start_xmit: status 7050 cmd 0c00
speedo_start_xmit: status 7050 cmd 0c00
speedo_start_xmit: status f050 cmd 0c00
speedo_start_xmit: status f050 cmd 0c00
speedo_start_xmit: status f050 cmd 0c00
speedo_start_xmit: status f050 cmd 0c00
speedo_start_xmit: status f050 cmd 0c00
speedo_start_xmit: status f050 cmd 0c00
speedo_start_xmit: status f050 cmd 0c00
speedo_start_xmit: status f050 cmd 0c00
speedo_start_xmit: status f050 cmd 0c00


speedo_start_xmit(struct sk_buff *skb, struct net_device *dev)
{
	struct speedo_private *sp = (struct speedo_private *)dev->priv;
	long ioaddr = dev->base_addr;
	int entry;
	/* Prevent interrupts from changing the Tx ring from underneath us.
*/
	unsigned long flags;
        
	//DCACHE_SYNC; manually force data cache invalidate

	printk("speedo_start_xmit: status %4.4x cmd %4.4x\n", inw(ioaddr +
SCBStatus), inw(ioaddr + SCBCmd));
	
	//udelay(1000);
	spin_lock_irqsave(&sp->lock, flags);
..........