summaryrefslogtreecommitdiff
path: root/sys/dev/sf/if_sf.c
diff options
context:
space:
mode:
authorBill Paul <wpaul@FreeBSD.org>2001-08-15 17:46:57 +0000
committerBill Paul <wpaul@FreeBSD.org>2001-08-15 17:46:57 +0000
commit0a4b345e9f52ef91eea5c2a105fc63c04957b70b (patch)
tree9980987414c5e6a08360f568dcf8e7295523449f /sys/dev/sf/if_sf.c
parent0219a4215565cddeb1e24915d291bbb42181ed7c (diff)
Notes
Diffstat (limited to 'sys/dev/sf/if_sf.c')
-rw-r--r--sys/dev/sf/if_sf.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/dev/sf/if_sf.c b/sys/dev/sf/if_sf.c
index ac7717ecdcd6..69f5bc1bf6ed 100644
--- a/sys/dev/sf/if_sf.c
+++ b/sys/dev/sf/if_sf.c
@@ -1094,7 +1094,10 @@ static void sf_intr(arg)
if (status & SF_ISR_RXDQ1_DMADONE)
sf_rxeof(sc);
- if (status & SF_ISR_TX_TXDONE)
+ if (status & SF_ISR_TX_TXDONE ||
+ status & SF_ISR_TX_DMADONE ||
+ status & SF_ISR_TX_QUEUEDONE ||
+ status & SF_ISR_TX_LOFIFO)
sf_txeof(sc);
if (status & SF_ISR_ABNORMALINTR) {
@@ -1305,7 +1308,7 @@ static void sf_start(ifp)
sc = ifp->if_softc;
SF_LOCK(sc);
- if (!sc->sf_link) {
+ if (!sc->sf_link && ifp->if_snd.ifq_len < 10) {
SF_UNLOCK(sc);
return;
}