On Tue, Jan 29, 2008 at 06:08:28PM -0500, jamal wrote: > On Tue, 2008-29-01 at 22:45 +0100, Erik Mouw wrote: > > > > The driver seems buggy. Make it return NETDEV_TX_BUSY instead of -EIO > > > in xircom_start_xmit() and the messages will go away. > > > > Like this? > > > > Indeed.
I've changed the -EIO into NETDEV_TX_BUSY and so far I can't trigger the bug anymore. It was quite easy to trigger within minutes with rsync, but I can't trigger it anymore. Should I send a patch, and if so: to who? The tulip/xircom_cb driver seems to be orphaned. > Peter, I suspect that driver is just buggy in some other way as opposed > to being re-entered; couldnt tell by inspection. It is possible it may > be too eager to open up before it really has space. > It will be easy to check your theory by having the driver just check if > it is netif_stopped just before it returns NETDEV_TX_BUSY. No need to test that, it *is* netif_stopped before the return: /* Uh oh... no free descriptor... drop the packet */ netif_stop_queue(dev); spin_unlock_irqrestore(&card->lock,flags); trigger_transmit(card); return NETDEV_TX_BUSY; trigger_transmit() is a simple function that just writes a single register on the card to trigger a transmit. Erik -- They're all fools. Don't worry. Darwin may be slow, but he'll eventually get them. -- Matthew Lammers in alt.sysadmin.recovery
signature.asc
Description: Digital signature