cvs commit: src/sys/dev/bge if_bge.c
Scott Long
scottl at samsco.org
Wed Dec 20 08:39:52 PST 2006
Bruce Evans wrote:
> bde 2006-12-20 12:03:21 UTC
>
> FreeBSD src repository
>
> Modified files:
> sys/dev/bge if_bge.c
> Log:
> In bge_txeof(), cancel the watchdog timeout if all descriptors have
> been handled instead of when at least one descriptor was just handled.
> For bge, it is normal to get a txeof when only a small fraction of the
> queued tx descriptors have been handled, so the bug broke the watchdog
> in a usual case.
>
> Revision Changes Path
> 1.170 +2 -1 src/sys/dev/bge/if_bge.c
As Gleb points out, what you've changed this to has a failure case too,
though maybe it's not as common as the one that you might have been
seeing. The whole countdown/reset scheme is basically insufficient.
What is needed is something like if_em, where the rings pointers are
actually checked for progress. It's simple and cheap to do, and it
addresses the actual issue of detecting when the chip has stopped
processing packets.
Scott
More information about the cvs-src
mailing list