[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