summaryrefslogtreecommitdiffstats
path: root/sys/dev/de
diff options
context:
space:
mode:
authormlaier <mlaier@FreeBSD.org>2004-07-02 12:16:02 +0000
committermlaier <mlaier@FreeBSD.org>2004-07-02 12:16:02 +0000
commit7bc770a2546e8a5f93ee931634d4064b3b6e08f2 (patch)
tree65f0224543a217107b8c639eebd90136c5b1386d /sys/dev/de
parent1ddf2fdcc0eaea7a1f7848fe9957f173c396c23c (diff)
downloadFreeBSD-src-7bc770a2546e8a5f93ee931634d4064b3b6e08f2.zip
FreeBSD-src-7bc770a2546e8a5f93ee931634d4064b3b6e08f2.tar.gz
Bring in the first chunk of altq driver modifications. This covers the
following drivers: bfe(4), em(4), fxp(4), lnc(4), tun(4), de(4) rl(4), sis(4) and xl(4) More patches are pending on: http://peoples.freebsd.org/~mlaier/ Please take a look and tell me if "your" driver is missing, so I can fix this. Tested-by: many No-objection: -current, -net
Diffstat (limited to 'sys/dev/de')
-rw-r--r--sys/dev/de/if_de.c23
1 files changed, 14 insertions, 9 deletions
diff --git a/sys/dev/de/if_de.c b/sys/dev/de/if_de.c
index a56f1b8..6c3592e 100644
--- a/sys/dev/de/if_de.c
+++ b/sys/dev/de/if_de.c
@@ -4619,15 +4619,17 @@ tulip_ifstart(
if ((sc->tulip_flags & (TULIP_WANTSETUP|TULIP_TXPROBE_ACTIVE)) == TULIP_WANTSETUP)
tulip_txput_setup(sc);
- while (sc->tulip_if.if_snd.ifq_head != NULL) {
+ while (!IFQ_DRV_IS_EMPTY(&sc->tulip_if.if_snd)) {
struct mbuf *m;
- IF_DEQUEUE(&sc->tulip_if.if_snd, m);
+ IFQ_DRV_DEQUEUE(&sc->tulip_if.if_snd, m);
+ if(m == NULL)
+ break;
if ((m = tulip_txput(sc, m)) != NULL) {
- IF_PREPEND(&sc->tulip_if.if_snd, m);
+ IFQ_DRV_PREPEND(&sc->tulip_if.if_snd, m);
break;
}
}
- if (sc->tulip_if.if_snd.ifq_head == NULL)
+ if (IFQ_DRV_IS_EMPTY(&sc->tulip_if.if_snd))
sc->tulip_if.if_start = tulip_ifstart_one;
}
@@ -4642,11 +4644,12 @@ tulip_ifstart_one(
tulip_softc_t * const sc = (tulip_softc_t *)ifp->if_softc;
if ((sc->tulip_if.if_flags & IFF_RUNNING)
- && sc->tulip_if.if_snd.ifq_head != NULL) {
+ && !IFQ_DRV_IS_EMPTY(&sc->tulip_if.if_snd)) {
struct mbuf *m;
- IF_DEQUEUE(&sc->tulip_if.if_snd, m);
- if ((m = tulip_txput(sc, m)) != NULL)
- IF_PREPEND(&sc->tulip_if.if_snd, 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);
}
@@ -4788,7 +4791,9 @@ tulip_attach(
tulip_reset(sc);
ether_ifattach(&(sc)->tulip_if, sc->tulip_enaddr);
- ifp->if_snd.ifq_maxlen = ifqmaxlen;
+ IFQ_SET_MAXLEN(&ifp->if_snd, ifqmaxlen);
+ ifp->if_snd.ifq_drv_maxlen = ifqmaxlen;
+ IFQ_SET_READY(&ifp->if_snd);
}
#if defined(TULIP_BUS_DMA)
OpenPOWER on IntegriCloud