[eepro100] Receiver lock-up -- is this right??
Donald Becker
becker@scyld.com
Tue, 7 Aug 2001 22:39:33 -0400 (EDT)
On Tue, 7 Aug 2001, les Niles wrote:
> I'm trying to track down an eepro100 lock-up problem. I don't know if
> this lock-up is the standard one for which the driver's work-around is
> intended, but in looking at the code I came across something that doesn't
> look quite right. In the initialization routine speedo_found1() there are
> two references to the lock-up workaround. The first, in the kernel_bloat
> section, tests "if (eeprom[3] & 0x03)" and prints a KERN_INFO message.
This test is wrong.
> The second, almost at the end of speedo_found1(), sets the rx_bug flag to
> "(eeprom[3] & 0x03) == 3 ? 0 : 1" and prints another KERN_INFO message if
> rx_bug is set.
This second test is correct, and it's the one that sets the work-around
bit.
0x0001 No need to run the work-around at 100Mbps
0x0002 No need to run the work-around at 10Mbps
Since the driver doesn't always know that it can find the speed
detected, it always runs the work-around if either bit is set. The
work-around has minimal impact, so this is reasonable.
Donald Becker becker@scyld.com
Scyld Computing Corporation http://www.scyld.com
410 Severn Ave. Suite 210 Second Generation Beowulf Clusters
Annapolis MD 21403 410-990-9993