]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Fixed a few bugs in the rl(4) driver:
authorRuslan Ermilov <ru@FreeBSD.org>
Sat, 3 Apr 2004 00:42:33 +0000 (00:42 +0000)
committerRuslan Ermilov <ru@FreeBSD.org>
Sat, 3 Apr 2004 00:42:33 +0000 (00:42 +0000)
commitb08f499b325bd1a3648fe5a660447c8416101052
treed9b7926011453a4021437eebf50c19e27a0cdae9
parent1e774079722bf9889cf27fc0189dae13e9cdcef1
Fixed a few bugs in the rl(4) driver:

Under polling(4), we counted non-existent output packets and wasted
CPU cycles, corrected.  (PR kern/64975.)

The fix in revision 1.71 to correct resetting of the watchdog timer
was wrong.

In rl(4), the TX list does not have a gap between the consumer and
producer, so the "empty TX list" test was wrong, corrected.

Also, resetting the timer to five each time we know there is still
some TX work to do was a bad idea -- under polling(4), if the chip
goes out to lunch, this results in the watchdog routine to _never_
be called.  Instead, let the timer downgrade to zero and fire the
watchdog, then reset it to five when it is zero AND there is some
TX work left.  (Most other network drivers need this fix too.)

MFC after: 3 days
sys/pci/if_rl.c