cvs commit: src/sys/dev/nve if_nve.c
John Baldwin
jhb at FreeBSD.org
Fri Apr 28 20:08:17 UTC 2006
jhb 2006-04-28 20:08:16 UTC
FreeBSD src repository
Modified files:
sys/dev/nve if_nve.c
Log:
The nvidia binary blob sometimes defers tx completion notification to the
OS dependent layer. Thus, the watchdog timer can go off when the tx
engine is working fine but the OS dependent layer just hasn't been called
to cleanup finished tx transactions. To workaround this, when the watchdog
fires, poke the binary blob to force it to flush any pending tx
completions. If this drops the pending tx count to zero then just return
without logging a message or resetting the chip.
This reportedly fixes the 'device timeout()' errors with at least several
NF4 nve(4) parts.
Submitted by: Nathan Alexander Whitehorn <nathanw at uchicago.edu> (code)
Submitted by: dg (inspiration for comment and explanation)
MFC after: 1 week
Revision Changes Path
1.21 +19 -1 src/sys/dev/nve/if_nve.c
More information about the cvs-src
mailing list