[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);
..........