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