diff options
author | John-Mark Gurney <jmg@FreeBSD.org> | 2004-10-18 23:06:12 +0000 |
---|---|---|
committer | John-Mark Gurney <jmg@FreeBSD.org> | 2004-10-18 23:06:12 +0000 |
commit | 7a099cc936ab621305add260cff716f7c41bd399 (patch) | |
tree | 2d82c8abd0886d8869387831ac453eee2a3b96ae /sys/dev/de/if_de.c | |
parent | 81158452be7803fda8aa36feb4464d5301dce85c (diff) | |
download | src-7a099cc936ab621305add260cff716f7c41bd399.tar.gz src-7a099cc936ab621305add260cff716f7c41bd399.zip |
fix (for me) the problems where if_de gets really slow after time
(usually taking 20 seconds to transmit a packet).. no longer fall back
to only transmitting one packet (instead of the entire queue) after we
have processed the entire send queue... I have no idea why we didn't
start seeing this problem ~6 years ago when this code was introduced...
Notes
Notes:
svn path=/head/; revision=136683
Diffstat (limited to 'sys/dev/de/if_de.c')
-rw-r--r-- | sys/dev/de/if_de.c | 21 |
1 files changed, 0 insertions, 21 deletions
diff --git a/sys/dev/de/if_de.c b/sys/dev/de/if_de.c index 0e25f62ede89..bbbe2a379328 100644 --- a/sys/dev/de/if_de.c +++ b/sys/dev/de/if_de.c @@ -117,7 +117,6 @@ static void tulip_ifinit(void *); static int tulip_ifmedia_change(struct ifnet * const ifp); static void tulip_ifmedia_status(struct ifnet * const ifp, struct ifmediareq *req); -static void tulip_ifstart_one(struct ifnet *ifp); static void tulip_ifstart(struct ifnet *ifp); static void tulip_init(tulip_softc_t * const sc); static void tulip_intr_shared(void *arg); @@ -4635,30 +4634,10 @@ tulip_ifstart( break; } } - if (IFQ_DRV_IS_EMPTY(&sc->tulip_if.if_snd)) - sc->tulip_if.if_start = tulip_ifstart_one; } TULIP_PERFEND(ifstart); } - -static void -tulip_ifstart_one( - struct ifnet * const ifp) -{ - TULIP_PERFSTART(ifstart_one) - tulip_softc_t * const sc = (tulip_softc_t *)ifp->if_softc; - - if ((sc->tulip_if.if_flags & IFF_RUNNING) - && !IFQ_DRV_IS_EMPTY(&sc->tulip_if.if_snd)) { - struct mbuf *m; - IFQ_DRV_DEQUEUE(&sc->tulip_if.if_snd, m); - if(m == NULL); - else if((m = tulip_txput(sc, m)) != NULL) - IFQ_DRV_PREPEND(&sc->tulip_if.if_snd, m); - } - TULIP_PERFEND(ifstart_one); -} /* * Even though this routine runs at device spl, it does not break |