aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/en
diff options
context:
space:
mode:
authorKenjiro Cho <kjc@FreeBSD.org>1998-10-09 11:48:22 +0000
committerKenjiro Cho <kjc@FreeBSD.org>1998-10-09 11:48:22 +0000
commit513bc54fe0d3fc0a0947b20adad9b776b27c7d10 (patch)
tree0e47347f33515a43a1c5a537fb9cd4f59ad091fb /sys/dev/en
parent8b1ef8d4645b65a6acfa34d3c1f460805e737a98 (diff)
Notes
Diffstat (limited to 'sys/dev/en')
-rw-r--r--sys/dev/en/midway.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/dev/en/midway.c b/sys/dev/en/midway.c
index 91b17b65195d..2e22fd1db329 100644
--- a/sys/dev/en/midway.c
+++ b/sys/dev/en/midway.c
@@ -2119,7 +2119,11 @@ again:
goto dequeue_drop;
}
- if (launch.need > sc->txslot[chan].bfree) {
+ /*
+ * note: don't use the entire buffer space. if WRTX becomes equal
+ * to RDTX, the transmitter stops assuming the buffer is empty! --kjc
+ */
+ if (launch.need >= sc->txslot[chan].bfree) {
EN_COUNT(sc->txoutspace);
#ifdef EN_DEBUG
printf("%s: tx%d: out of transmit space\n", sc->sc_dev.dv_xname, chan);