Subject: CVS commit: src
To: None <source-changes@netbsd.org>
From: Matt Thomas <matt@netbsd.org>
List: source-changes
Date: 09/14/1998 19:39:04
Module Name: src
Committed By: matt
Date: Tue Sep 15 02:39:04 UTC 1998
Modified Files:
src/sys/dev/pci: if_de.c if_devar.h
Log Message:
This commit fixes two bugs in the de driver. The first is that the
descriptor count gets miscounted on txprobes. The second (and more
important) is that transmit stalls should now be fixed. The problem
was not due to lack of ring resources but dmamaps. When Jason changed
the driver to use pre-allocated maps (instead of the dynamic ones I
used), and when there were no more maps, the driver just gave up instead
of calling tx_intr to free any transmitted but unreclaimed dma maps.
Since there was nothing being transmitted, no transmit interrupts
would fire to restore things (and OACTIVE prevented other transmits
from happenning). So it stayed starved until another interrupt cause
(like a received packet) "woke" it up.