Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 21 Feb 2006 20:20:43 +0000 (UTC)
From:      Marius Strobl <marius@FreeBSD.org>
To:        src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/dev/le am7990.c am79900.c
Message-ID:  <200602212020.k1LKKhk1062615@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
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@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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200602212020.k1LKKhk1062615>