Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/dev/pci ALTQ'ify.
details: https://anonhg.NetBSD.org/src/rev/051bb8b963a1
branches: trunk
changeset: 500588:051bb8b963a1
user: thorpej <thorpej%NetBSD.org@localhost>
date: Thu Dec 14 06:42:57 2000 +0000
description:
ALTQ'ify.
diffstat:
sys/dev/pci/if_sip.c | 10 +++++-----
sys/dev/pci/if_ti.c | 22 +++++++++++++++++-----
sys/dev/pci/if_tl.c | 4 +++-
sys/dev/pci/if_vr.c | 11 ++++++-----
4 files changed, 31 insertions(+), 16 deletions(-)
diffs (186 lines):
diff -r 929e75a4a527 -r 051bb8b963a1 sys/dev/pci/if_sip.c
--- a/sys/dev/pci/if_sip.c Thu Dec 14 06:38:50 2000 +0000
+++ b/sys/dev/pci/if_sip.c Thu Dec 14 06:42:57 2000 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: if_sip.c,v 1.20 2000/11/15 01:02:15 thorpej Exp $ */
+/* $NetBSD: if_sip.c,v 1.21 2000/12/14 06:42:57 thorpej Exp $ */
/*-
* Copyright (c) 1999 Network Computer, Inc.
@@ -582,6 +582,7 @@
ifp->if_watchdog = sip_watchdog;
ifp->if_init = sip_init;
ifp->if_stop = sip_stop;
+ IFQ_SET_READY(&ifp->if_snd);
/*
* Attach the interface.
@@ -681,7 +682,7 @@
/*
* Grab a packet off the queue.
*/
- IF_DEQUEUE(&ifp->if_snd, m0);
+ IFQ_POLL(&ifp->if_snd, m0);
if (m0 == NULL)
break;
@@ -699,7 +700,6 @@
if (m == NULL) {
printf("%s: unable to allocate Tx mbuf\n",
sc->sc_dev.dv_xname);
- IF_PREPEND(&ifp->if_snd, m0);
break;
}
if (m0->m_pkthdr.len > MHLEN) {
@@ -708,7 +708,6 @@
printf("%s: unable to allocate Tx "
"cluster\n", sc->sc_dev.dv_xname);
m_freem(m);
- IF_PREPEND(&ifp->if_snd, m0);
break;
}
}
@@ -721,11 +720,12 @@
if (error) {
printf("%s: unable to load Tx buffer, "
"error = %d\n", sc->sc_dev.dv_xname, error);
- IF_PREPEND(&ifp->if_snd, m0);
break;
}
}
+ IFQ_DEQUEUE(&ifp->if_snd, m0);
+
/*
* Ensure we have enough descriptors free to describe
* the packet.
diff -r 929e75a4a527 -r 051bb8b963a1 sys/dev/pci/if_ti.c
--- a/sys/dev/pci/if_ti.c Thu Dec 14 06:38:50 2000 +0000
+++ b/sys/dev/pci/if_ti.c Thu Dec 14 06:42:57 2000 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: if_ti.c,v 1.15 2000/11/17 19:33:25 bouyer Exp $ */
+/* $NetBSD: if_ti.c,v 1.16 2000/12/14 06:42:57 thorpej Exp $ */
/*
* Copyright (c) 1997, 1998, 1999
@@ -1792,7 +1792,17 @@
ifp->if_ioctl = ti_ioctl;
ifp->if_start = ti_start;
ifp->if_watchdog = ti_watchdog;
+ IFQ_SET_READY(&ifp->if_snd);
+
+#if 0
+ /*
+ * XXX This is not really correct -- we don't necessarily
+ * XXX want to queue up as many as we can transmit at the
+ * XXX upper layer like that. Someone with a board should
+ * XXX check to see how this affects performance.
+ */
ifp->if_snd.ifq_maxlen = TI_TX_RING_CNT - 1;
+#endif
/*
* We can support 802.1Q VLAN-sized frames.
@@ -2067,7 +2077,8 @@
/* Re-enable interrupts. */
CSR_WRITE_4(sc, TI_MB_HOSTINTR, 0);
- if (ifp->if_flags & IFF_RUNNING && ifp->if_snd.ifq_head != NULL)
+ if ((ifp->if_flags & IFF_RUNNING) != 0 &&
+ IFQ_IS_EMPTY(&ifp->if_snd) == 0)
ti_start(ifp);
return (1);
@@ -2206,8 +2217,8 @@
prodidx = CSR_READ_4(sc, TI_MB_SENDPROD_IDX);
- while(sc->ti_cdata.ti_tx_chain[prodidx] == NULL) {
- IF_DEQUEUE(&ifp->if_snd, m_head);
+ while (sc->ti_cdata.ti_tx_chain[prodidx] == NULL) {
+ IFQ_POLL(&ifp->if_snd, m_head);
if (m_head == NULL)
break;
@@ -2217,11 +2228,12 @@
* for the NIC to drain the ring.
*/
if (ti_encap(sc, m_head, &prodidx)) {
- IF_PREPEND(&ifp->if_snd, m_head);
ifp->if_flags |= IFF_OACTIVE;
break;
}
+ IFQ_DEQUEUE(&ifp->if_snd, m_head);
+
/*
* If there's a BPF listener, bounce a copy of this frame
* to him.
diff -r 929e75a4a527 -r 051bb8b963a1 sys/dev/pci/if_tl.c
--- a/sys/dev/pci/if_tl.c Thu Dec 14 06:38:50 2000 +0000
+++ b/sys/dev/pci/if_tl.c Thu Dec 14 06:42:57 2000 +0000
@@ -1,4 +1,6 @@
-/* $NetBSD: if_tl.c,v 1.37 2000/11/15 01:02:15 thorpej Exp $ */
+/* $NetBSD: if_tl.c,v 1.38 2000/12/14 06:42:57 thorpej Exp $ */
+
+/* XXX ALTQ XXX */
/*
* Copyright (c) 1997 Manuel Bouyer. All rights reserved.
diff -r 929e75a4a527 -r 051bb8b963a1 sys/dev/pci/if_vr.c
--- a/sys/dev/pci/if_vr.c Thu Dec 14 06:38:50 2000 +0000
+++ b/sys/dev/pci/if_vr.c Thu Dec 14 06:42:57 2000 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: if_vr.c,v 1.41 2000/11/15 01:02:15 thorpej Exp $ */
+/* $NetBSD: if_vr.c,v 1.42 2000/12/14 06:42:57 thorpej Exp $ */
/*-
* Copyright (c) 1998, 1999 The NetBSD Foundation, Inc.
@@ -948,7 +948,7 @@
/*
* Grab a packet off the queue.
*/
- IF_DEQUEUE(&ifp->if_snd, m0);
+ IFQ_POLL(&ifp->if_snd, m0);
if (m0 == NULL)
break;
@@ -971,7 +971,6 @@
if (m == NULL) {
printf("%s: unable to allocate Tx mbuf\n",
sc->vr_dev.dv_xname);
- IF_PREPEND(&ifp->if_snd, m0);
break;
}
if (m0->m_pkthdr.len > MHLEN) {
@@ -980,7 +979,6 @@
printf("%s: unable to allocate Tx "
"cluster\n", sc->vr_dev.dv_xname);
m_freem(m);
- IF_PREPEND(&ifp->if_snd, m0);
break;
}
}
@@ -993,11 +991,12 @@
if (error) {
printf("%s: unable to load Tx buffer, "
"error = %d\n", sc->vr_dev.dv_xname, error);
- IF_PREPEND(&ifp->if_snd, m0);
break;
}
}
+ IFQ_DEQUEUE(&ifp->if_snd, m0);
+
/* Sync the DMA map. */
bus_dmamap_sync(sc->vr_dmat, ds->ds_dmamap, 0,
ds->ds_dmamap->dm_mapsize, BUS_DMASYNC_PREWRITE);
@@ -1625,6 +1624,8 @@
ifp->if_watchdog = vr_watchdog;
ifp->if_init = vr_init;
ifp->if_stop = vr_stop;
+ IFQ_SET_READY(&ifp->if_snd);
+
bcopy(sc->vr_dev.dv_xname, ifp->if_xname, IFNAMSIZ);
/*
Home |
Main Index |
Thread Index |
Old Index