Searched hist:155881 (Results 1 - 2 of 2) sorted by relevance

/freebsd-10.0-release/sys/dev/le/
H A Dam7990.cdiff 155881 Tue Feb 21 18:20:43 MST 2006 marius - 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
H A Dam79900.cdiff 155881 Tue Feb 21 18:20:43 MST 2006 marius - 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

Completed in 159 milliseconds