[eepro100] Receiver lock-up -- is this right??
les Niles
lniles@Narus.com
Tue, 7 Aug 2001 19:04:10 -0700
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.
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 is the same in all the versions of eepro100.c that
I've looked at, from v1.06 to v1.17.
I don't get it. The first test says the work-around is "enabled" if either
of
the low-order bits is set. The second test -- the one that counts --
"activates"
work-around if either of the low-order bits is *not* set. Is that right?
Why the conflicting messages? Am I missing something? Have I gone stupid
from
staring at this problem too long?
(At startup, the first message appears and the second one doesn't, which is
consistent with the 0x0503 that eepro100-diag reports for eeprom[3] -- which
means the work-around doesn't get run.)
-les lniles@narus.com