Re: Problems with 3c59x
Donald Becker <[email protected]>
| Newsgroups | gmane.linux.drivers.vortex.devel |
|---|---|
| Message-ID | <[email protected]> |
On Fri, 13 Dec 2002, Bogdan Costescu wrote: > On Fri, 13 Dec 2002, Donald Becker wrote: > > > I think that you missed "eth0" vs "eth1". > > No, I missed the part where the interface goes down :-) > > > I believe that this is a different bug, although that fix might have > > addressed both. > > Well, I don't want to contradict you, but I am proud of my memory > (when I'm sure that it functions :-)). This is from the kernel driver: > > LK1.1.9 12 Sep 2000 andrewm > ..... > - Fixed a bug where, if vp->tx_full is set when the interface > is downed, it remains set when the interface is upped. Bad > things happen. > So I was right about the fix, but wrong about the time :-) Doh! Yes, that is clearly the bug here. I believed that this was the race with the Tx queue going from full to completely empty when the interrupt handler ran at exactly the wrong time. That can leave the tx_full flag set if not properly handled. All of the other drivers cleared the tx_full flag in init_ring(), while the 3c59x driver uses in-line code to do the ring initialization only for the 3c905 series. This would have been avoided if I had converted 3c59x.c to use an init_rings() function that matched pci-skeleton.c -- Donald Becker [email protected] Scyld Computing Corporation http://www.scyld.com 410 Severn Ave. Suite 210 Scyld Beowulf cluster system Annapolis MD 21403 410-990-9993 _______________________________________________ vortex mailing list [email protected] http://www.scyld.com/mailman/listinfo/vortex