Hamachi 0.10 driver
Eric Kasten
kasten@nscl.msu.edu
Tue Feb 23 14:42:32 1999
The truth be told... I've verified the interrupt status fields
against the eng. spec. Michel get the sharp eyes award
for spotting this. The bitfields and the a change to make the
compare TX_RING_SIZE - 4 instead of -1 has been made in v0.12
As usual:
http://www.nscl.msu.edu/~kasten/perf/hamachi/
http://www.nscl.msu.edu/~kasten/perf/hamachi/src
Have fun folks.
...Eric
>
> Hello Everybody,
>
> I have found additional problems with the hamachi driver.
> The first one is a wrong bitmap definition of the interrupt status/clear
> register.
>
> IntrTxDone, IntrTxPCIFault and IntrTxPCIErr are defined wrong in all
> versions of the hamachi driver.
> These are only used in the 0.10 version probably because everybody thaught
> that the TxInterrupts don't work properly.
>
> The correct definitions in enum intr_status_bits should be:
> IntrTxDone=0x100, IntrTxPCIFault=0x200, IntrTxPCIErr=0x400,
>
> The 2nd inconsistency in the driver seems to be another reason for the
> tx-timeout problem.
>
> In hamachi_interrupt() (in Donalds driver) or hamachi_tx() (in Eric's
> version) is a check whether the TxQueue is full or not.
> hmp->tx_full and dev->tbusy will only be cleared if at least 4 descriptors
> are free (TX_RING_SIZE - 4) and both (tx_full and tbusy) are set.
> The Problem is that in hamachi_start_xmit() dev->tbusy will be cleared
> when at least ONE (TX_RING_SIZE - 1) descriptor is free.
> But tx_full is not cleared.
>
> Michel
>
>
>
>
>
Eric Kasten
kasten@nscl.msu.edu
National Superconducting Cyclotron Lab
(517) 333-6412
| To unsubscribe, send mail to Majordomo@cesdis.gsfc.nasa.gov, and within the
| body of the mail, include only the text:
| unsubscribe this-list-name youraddress@wherever.org
| You will be unsubscribed as speedily as possible.