diff options
| author | Bill Paul <wpaul@FreeBSD.org> | 2001-08-15 17:46:57 +0000 |
|---|---|---|
| committer | Bill Paul <wpaul@FreeBSD.org> | 2001-08-15 17:46:57 +0000 |
| commit | 0a4b345e9f52ef91eea5c2a105fc63c04957b70b (patch) | |
| tree | 9980987414c5e6a08360f568dcf8e7295523449f | |
| parent | 0219a4215565cddeb1e24915d291bbb42181ed7c (diff) | |
Notes
| -rw-r--r-- | sys/dev/sf/if_sf.c | 7 | ||||
| -rw-r--r-- | sys/pci/if_sf.c | 7 |
2 files changed, 10 insertions, 4 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; } diff --git a/sys/pci/if_sf.c b/sys/pci/if_sf.c index ac7717ecdcd6..69f5bc1bf6ed 100644 --- a/sys/pci/if_sf.c +++ b/sys/pci/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; } |
