DragonFly commits List (threaded) for 2007-08
DragonFly BSD
DragonFly commits List (threaded) for 2007-08
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

cvs commit: src/sys/dev/netif/nfe if_nfe.c

From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 9 Aug 2007 00:24:50 -0700 (PDT)

dillon      2007/08/09 00:24:50 PDT

DragonFly src repository

  Modified files:
    sys/dev/netif/nfe    if_nfe.c 
  Introduce two delays in nfe_stop().
  The first seems to fix or greatly reduce instances of watchdog failures.
  I theorize that a TX KICK occuring just prior to a nfe_stop() is confusing
  the microcontroller due to the polled nature of the rest of the tx/rx control
  registers and the (almost certain) hardware aided TX KICK bit.  This
  confusion survives the nfe_stop() and nfe_init().  I'll again theorize that
  the KICK, which is probably a microcontroller interrupt, is not being reset
  and is being handled at some inappropriate point in time in the middle of
  nfe_stop() or nfe_init().
  The second delay gives the device time to actually stop the DMA engine
  before we destroy the ring buffers.  Even if those registers were under
  direct hardware control (and I really doubt they are), DMA just doesn't
  instantly stop when you tell it to.
  Revision  Changes    Path
  1.13      +27 -0     src/sys/dev/netif/nfe/if_nfe.c


[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]