cvs commit: src/sys/dev/le am7990.c am79900.c

Marius Strobl marius at FreeBSD.org
Tue Feb 21 12:20:44 PST 2006


marius      2006-02-21 20:20:43 UTC

  FreeBSD src repository

  Modified files:
    sys/dev/le           am7990.c am79900.c 
  Log:
  - In the interrupt handler clear the interrupt source flags before
    processing the interrupt events. If we clear them afterwards we
    can completely miss some events as the NIC can change the source
    flags while we're in the handler. In order to not get another
    interrupt while we're in ifp->if_input() with the driver lock
    dropped we now turn off NIC interrupts while in the interrupt
    handler. Previously this was meant to be achieved by clearing the
    interrupt source flags after processing the interrupt events but
    didn't really work as clearing these flags doesn't actually
    acknowledge and re-enable the events.
    This fixes the device timeouts seen with the VMware LANCE.
  - Relax the watchdog timer somewhat; don't enable it until the last
    packet is enqueued and if there is a TX interrupt but there are
    still outstanding ones reload the timer.
  
  Reported and tested by: Morten Rodal <morten at rodal.no>
  MFC after:              3 days
  
  Revision  Changes    Path
  1.2       +24 -17    src/sys/dev/le/am7990.c
  1.2       +24 -17    src/sys/dev/le/am79900.c


More information about the cvs-src mailing list