Hamachi 0.10 driver

Michel Mueller sirius@krypton.imp.com
Tue Feb 23 13:49:46 1999


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




 | 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.