1e99c29ded
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 |
||
---|---|---|
.. | ||
am7990.c | ||
am7990reg.h | ||
am7990var.h | ||
am79900.c | ||
am79900reg.h | ||
am79900var.h | ||
if_le_ledma.c | ||
if_le_pci.c | ||
lance.c | ||
lancereg.h | ||
lancevar.h |