NIC hangs

"Afzal, Naeem M" <[email protected]>
Newsgroups gmane.linux.drivers.eepro100.devel
Message-ID <[email protected]>
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);
..........
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.