Module Name: src Committed By: thorpej Date: Sun Mar 15 22:19:01 UTC 2020
Modified Files: src/sys/dev/ic: aic6915.c dp83932.c gem.c sgec.c smc83c170.c tulip.c Log Message: Don't bother with IFF_OACTIVE. To generate a diff of this commit: cvs rdiff -u -r1.43 -r1.44 src/sys/dev/ic/aic6915.c cvs rdiff -u -r1.45 -r1.46 src/sys/dev/ic/dp83932.c cvs rdiff -u -r1.129 -r1.130 src/sys/dev/ic/gem.c cvs rdiff -u -r1.52 -r1.53 src/sys/dev/ic/sgec.c cvs rdiff -u -r1.94 -r1.95 src/sys/dev/ic/smc83c170.c cvs rdiff -u -r1.203 -r1.204 src/sys/dev/ic/tulip.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/ic/aic6915.c diff -u src/sys/dev/ic/aic6915.c:1.43 src/sys/dev/ic/aic6915.c:1.44 --- src/sys/dev/ic/aic6915.c:1.43 Thu Mar 12 03:01:46 2020 +++ src/sys/dev/ic/aic6915.c Sun Mar 15 22:19:00 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: aic6915.c,v 1.43 2020/03/12 03:01:46 thorpej Exp $ */ +/* $NetBSD: aic6915.c,v 1.44 2020/03/15 22:19:00 thorpej Exp $ */ /*- * Copyright (c) 2001 The NetBSD Foundation, Inc. @@ -35,7 +35,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: aic6915.c,v 1.43 2020/03/12 03:01:46 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: aic6915.c,v 1.44 2020/03/15 22:19:00 thorpej Exp $"); #include <sys/param.h> @@ -469,11 +469,6 @@ sf_start(struct ifnet *ifp) bpf_mtap(ifp, m0, BPF_D_OUT); } - if (sc->sc_txpending == (SF_NTXDESC - 1)) { - /* No more slots left; notify upper layer. */ - ifp->if_flags |= IFF_OACTIVE; - } - if (sc->sc_txpending != opending) { KASSERT(last != -1); /* @@ -638,8 +633,6 @@ sf_txintr(struct sf_softc *sc) if (consumer == producer) return; - ifp->if_flags &= ~IFF_OACTIVE; - while (consumer != producer) { SF_CDTXCSYNC(sc, consumer, BUS_DMASYNC_POSTREAD); tcd = le32toh(sc->sc_txcomp[consumer].tcd_word0); @@ -1097,11 +1090,10 @@ sf_init(struct ifnet *ifp) * Note that the interface is now running. */ ifp->if_flags |= IFF_RUNNING; - ifp->if_flags &= ~IFF_OACTIVE; out: if (error) { - ifp->if_flags &= ~(IFF_RUNNING | IFF_OACTIVE); + ifp->if_flags &= ~IFF_RUNNING; ifp->if_timer = 0; printf("%s: interface not running\n", device_xname(sc->sc_dev)); } @@ -1168,7 +1160,7 @@ sf_stop(struct ifnet *ifp, int disable) /* * Mark the interface down and cancel the watchdog timer. */ - ifp->if_flags &= ~(IFF_RUNNING | IFF_OACTIVE); + ifp->if_flags &= ~IFF_RUNNING; ifp->if_timer = 0; if (disable) Index: src/sys/dev/ic/dp83932.c diff -u src/sys/dev/ic/dp83932.c:1.45 src/sys/dev/ic/dp83932.c:1.46 --- src/sys/dev/ic/dp83932.c:1.45 Wed Jan 29 14:14:55 2020 +++ src/sys/dev/ic/dp83932.c Sun Mar 15 22:19:00 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: dp83932.c,v 1.45 2020/01/29 14:14:55 thorpej Exp $ */ +/* $NetBSD: dp83932.c,v 1.46 2020/03/15 22:19:00 thorpej Exp $ */ /*- * Copyright (c) 2001 The NetBSD Foundation, Inc. @@ -35,7 +35,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: dp83932.c,v 1.45 2020/01/29 14:14:55 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: dp83932.c,v 1.46 2020/03/15 22:19:00 thorpej Exp $"); #include <sys/param.h> @@ -287,7 +287,7 @@ sonic_start(struct ifnet *ifp) int error, olasttx, nexttx, opending, totlen, olseg; int seg = 0; /* XXX: gcc */ - if ((ifp->if_flags & (IFF_RUNNING | IFF_OACTIVE)) != IFF_RUNNING) + if ((ifp->if_flags & IFF_RUNNING) != IFF_RUNNING) return; /* @@ -471,11 +471,6 @@ sonic_start(struct ifnet *ifp) bpf_mtap(ifp, m0, BPF_D_OUT); } - if (sc->sc_txpending == (SONIC_NTXDESC - 1)) { - /* No more slots left; notify upper layer. */ - ifp->if_flags |= IFF_OACTIVE; - } - if (sc->sc_txpending != opending) { /* * We enqueued packets. If the transmitter was idle, @@ -634,8 +629,6 @@ sonic_txintr(struct sonic_softc *sc) uint16_t status, totstat = 0; int i; - ifp->if_flags &= ~IFF_OACTIVE; - for (i = sc->sc_txdirty; sc->sc_txpending != 0; i = SONIC_NEXTTX(i), sc->sc_txpending--) { ds = &sc->sc_txsoft[i]; @@ -1017,7 +1010,6 @@ sonic_init(struct ifnet *ifp) * ...all done! */ ifp->if_flags |= IFF_RUNNING; - ifp->if_flags &= ~IFF_OACTIVE; out: if (error) @@ -1090,7 +1082,7 @@ sonic_stop(struct ifnet *ifp, int disabl /* * Mark the interface down and cancel the watchdog timer. */ - ifp->if_flags &= ~(IFF_RUNNING | IFF_OACTIVE); + ifp->if_flags &= ~IFF_RUNNING; ifp->if_timer = 0; if (disable) Index: src/sys/dev/ic/gem.c diff -u src/sys/dev/ic/gem.c:1.129 src/sys/dev/ic/gem.c:1.130 --- src/sys/dev/ic/gem.c:1.129 Sun Mar 1 05:50:56 2020 +++ src/sys/dev/ic/gem.c Sun Mar 15 22:19:00 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: gem.c,v 1.129 2020/03/01 05:50:56 thorpej Exp $ */ +/* $NetBSD: gem.c,v 1.130 2020/03/15 22:19:00 thorpej Exp $ */ /* * @@ -37,7 +37,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: gem.c,v 1.129 2020/03/01 05:50:56 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: gem.c,v 1.130 2020/03/15 22:19:00 thorpej Exp $"); #include "opt_inet.h" @@ -745,7 +745,7 @@ gem_stop(struct ifnet *ifp, int disable) /* * Mark the interface down and cancel the watchdog timer. */ - ifp->if_flags &= ~(IFF_RUNNING | IFF_OACTIVE); + ifp->if_flags &= ~IFF_RUNNING; sc->sc_if_flags = ifp->if_flags; ifp->if_timer = 0; @@ -1228,7 +1228,6 @@ gem_init(struct ifnet *ifp) sc->sc_flags &= ~GEM_LINK; ifp->if_flags |= IFF_RUNNING; - ifp->if_flags &= ~IFF_OACTIVE; ifp->if_timer = 0; sc->sc_if_flags = ifp->if_flags; out: @@ -1371,7 +1370,7 @@ gem_start(struct ifnet *ifp) #endif uint64_t flags = 0; - if ((ifp->if_flags & (IFF_RUNNING | IFF_OACTIVE)) != IFF_RUNNING) + if ((ifp->if_flags & IFF_RUNNING) != IFF_RUNNING) return; /* @@ -1459,16 +1458,8 @@ next: (sc->sc_txfree - 1) : sc->sc_txfree)) { /* * Not enough free descriptors to transmit this - * packet. We haven't committed to anything yet, - * so just unload the DMA map, put the packet - * back on the queue, and punt. Notify the upper - * layer that there are no more slots left. - * - * XXX We could allocate an mbuf and copy, but - * XXX it is worth it? + * packet. */ - ifp->if_flags |= IFF_OACTIVE; - sc->sc_if_flags = ifp->if_flags; bus_dmamap_unload(sc->sc_dmatag, dmamap); if (m != NULL) m_freem(m); @@ -1608,12 +1599,6 @@ next: bpf_mtap(ifp, m0, BPF_D_OUT); } - if (txs == NULL || sc->sc_txfree == 0) { - /* No more slots left; notify upper layer. */ - ifp->if_flags |= IFF_OACTIVE; - sc->sc_if_flags = ifp->if_flags; - } - if (sc->sc_txfree != ofree) { DPRINTF(sc, ("%s: packets enqueued, IC on %d, OWN on %d\n", device_xname(sc->sc_dev), lasttx, otxnext)); @@ -1748,9 +1733,6 @@ gem_tint(struct gem_softc *sc) if (sc->sc_txfree == GEM_NTXDESC - 1) sc->sc_txwin = 0; - /* Freed some descriptors, so reset IFF_OACTIVE and restart. */ - ifp->if_flags &= ~IFF_OACTIVE; - sc->sc_if_flags = ifp->if_flags; ifp->if_timer = SIMPLEQ_EMPTY(&sc->sc_txdirtyq) ? 0 : 5; if_schedule_deferred_start(ifp); } Index: src/sys/dev/ic/sgec.c diff -u src/sys/dev/ic/sgec.c:1.52 src/sys/dev/ic/sgec.c:1.53 --- src/sys/dev/ic/sgec.c:1.52 Thu Jan 30 04:56:11 2020 +++ src/sys/dev/ic/sgec.c Sun Mar 15 22:19:00 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: sgec.c,v 1.52 2020/01/30 04:56:11 thorpej Exp $ */ +/* $NetBSD: sgec.c,v 1.53 2020/03/15 22:19:00 thorpej Exp $ */ /* * Copyright (c) 1999 Ludd, University of Lule}, Sweden. All rights reserved. * @@ -39,7 +39,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sgec.c,v 1.52 2020/01/30 04:56:11 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sgec.c,v 1.53 2020/03/15 22:19:00 thorpej Exp $"); #include "opt_inet.h" @@ -301,7 +301,6 @@ zeinit(struct ze_softc *sc) ZE_NICSR6_SR | ZE_NICSR6_DC); ifp->if_flags |= IFF_RUNNING; - ifp->if_flags &= ~IFF_OACTIVE; /* * Send a setup frame. @@ -356,7 +355,6 @@ zestart(struct ifnet *ifp) if ((map->dm_nsegs + sc->sc_inq) >= (TXDESCS - 1)) { bus_dmamap_unload(sc->sc_dmat, map); - ifp->if_flags |= IFF_OACTIVE; goto out; } @@ -416,8 +414,6 @@ zestart(struct ifnet *ifp) bpf_mtap(ifp, m, BPF_D_OUT); } - if (sc->sc_inq == (TXDESCS - 1)) - ifp->if_flags |= IFF_OACTIVE; out: if (old_inq < sc->sc_inq) ifp->if_timer = 5; /* If transmit logic dies */ @@ -508,7 +504,6 @@ sgec_intr(struct ze_softc *sc) sc->sc_lastack = lastack; if (sc->sc_inq == 0) ifp->if_timer = 0; - ifp->if_flags &= ~IFF_OACTIVE; zestart(ifp); /* Put in more in queue */ } } Index: src/sys/dev/ic/smc83c170.c diff -u src/sys/dev/ic/smc83c170.c:1.94 src/sys/dev/ic/smc83c170.c:1.95 --- src/sys/dev/ic/smc83c170.c:1.94 Thu Mar 12 03:01:46 2020 +++ src/sys/dev/ic/smc83c170.c Sun Mar 15 22:19:00 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: smc83c170.c,v 1.94 2020/03/12 03:01:46 thorpej Exp $ */ +/* $NetBSD: smc83c170.c,v 1.95 2020/03/15 22:19:00 thorpej Exp $ */ /*- * Copyright (c) 1998, 1999 The NetBSD Foundation, Inc. @@ -36,7 +36,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: smc83c170.c,v 1.94 2020/03/12 03:01:46 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: smc83c170.c,v 1.95 2020/03/15 22:19:00 thorpej Exp $"); #include <sys/param.h> @@ -499,11 +499,6 @@ epic_start(struct ifnet *ifp) bpf_mtap(ifp, m0, BPF_D_OUT); } - if (sc->sc_txpending == EPIC_NTXDESC) { - /* No more slots left; notify upper layer. */ - ifp->if_flags |= IFF_OACTIVE; - } - if (sc->sc_txpending != opending) { /* * We enqueued packets. If the transmitter was idle, @@ -740,7 +735,6 @@ epic_intr(void *arg) * Check for transmission complete interrupts. */ if (intstat & (INTSTAT_TXC | INTSTAT_TXU)) { - ifp->if_flags &= ~IFF_OACTIVE; for (i = sc->sc_txdirty; sc->sc_txpending != 0; i = EPIC_NEXTTX(i), sc->sc_txpending--) { txd = EPIC_CDTX(sc, i); @@ -1035,7 +1029,6 @@ epic_init(struct ifnet *ifp) * ...all done! */ ifp->if_flags |= IFF_RUNNING; - ifp->if_flags &= ~IFF_OACTIVE; /* * Start the one second clock. @@ -1124,7 +1117,7 @@ epic_stop(struct ifnet *ifp, int disable /* * Mark the interface down and cancel the watchdog timer. */ - ifp->if_flags &= ~(IFF_RUNNING | IFF_OACTIVE); + ifp->if_flags &= ~IFF_RUNNING; ifp->if_timer = 0; if (disable) Index: src/sys/dev/ic/tulip.c diff -u src/sys/dev/ic/tulip.c:1.203 src/sys/dev/ic/tulip.c:1.204 --- src/sys/dev/ic/tulip.c:1.203 Wed Mar 11 16:20:57 2020 +++ src/sys/dev/ic/tulip.c Sun Mar 15 22:19:00 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: tulip.c,v 1.203 2020/03/11 16:20:57 msaitoh Exp $ */ +/* $NetBSD: tulip.c,v 1.204 2020/03/15 22:19:00 thorpej Exp $ */ /*- * Copyright (c) 1998, 1999, 2000, 2002 The NetBSD Foundation, Inc. @@ -36,7 +36,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: tulip.c,v 1.203 2020/03/11 16:20:57 msaitoh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tulip.c,v 1.204 2020/03/15 22:19:00 thorpej Exp $"); #include <sys/param.h> @@ -683,9 +683,9 @@ tlp_start(struct ifnet *ifp) * itself into the ring. */ if (sc->sc_flags & TULIPF_WANT_SETUP) - ifp->if_flags |= IFF_OACTIVE; + return; - if ((ifp->if_flags & (IFF_RUNNING | IFF_OACTIVE)) != IFF_RUNNING) + if ((ifp->if_flags & IFF_RUNNING) != IFF_RUNNING) return; if (sc->sc_tick == tlp_2114x_nway_tick && @@ -768,15 +768,8 @@ tlp_start(struct ifnet *ifp) if (dmamap->dm_nsegs > sc->sc_txfree) { /* * Not enough free descriptors to transmit this - * packet. We haven't committed to anything yet, - * so just unload the DMA map, put the packet - * back on the queue, and punt. Notify the upper - * layer that there are no more slots left. - * - * XXX We could allocate an mbuf and copy, but - * XXX it is worth it? + * packet. */ - ifp->if_flags |= IFF_OACTIVE; bus_dmamap_unload(sc->sc_dmat, dmamap); if (m != NULL) m_freem(m); @@ -877,11 +870,6 @@ tlp_start(struct ifnet *ifp) bpf_mtap(ifp, m0, BPF_D_OUT); } - if (txs == NULL || sc->sc_txfree == 0) { - /* No more slots left; notify upper layer. */ - ifp->if_flags |= IFF_OACTIVE; - } - if (sc->sc_txfree != ofree) { DPRINTF(sc, ("%s: packets enqueued, IC on %d, OWN on %d\n", device_xname(sc->sc_dev), lasttx, firsttx)); @@ -1414,8 +1402,6 @@ tlp_txintr(struct tulip_softc *sc) DPRINTF(sc, ("%s: tlp_txintr: sc_flags 0x%08x\n", device_xname(sc->sc_dev), sc->sc_flags)); - ifp->if_flags &= ~IFF_OACTIVE; - /* * Go through our Tx list and free mbufs for those * frames that have been transmitted. @@ -1947,12 +1933,11 @@ tlp_init(struct ifnet *ifp) * Note that the interface is now running. */ ifp->if_flags |= IFF_RUNNING; - ifp->if_flags &= ~IFF_OACTIVE; sc->sc_if_flags = ifp->if_flags; out: if (error) { - ifp->if_flags &= ~(IFF_RUNNING | IFF_OACTIVE); + ifp->if_flags &= ~IFF_RUNNING; ifp->if_timer = 0; printf("%s: interface not running\n", device_xname(sc->sc_dev)); } @@ -2062,7 +2047,7 @@ tlp_stop(struct ifnet *ifp, int disable) /* * Mark the interface down and cancel the watchdog timer. */ - ifp->if_flags &= ~(IFF_RUNNING | IFF_OACTIVE); + ifp->if_flags &= ~IFF_RUNNING; sc->sc_if_flags = ifp->if_flags; ifp->if_timer = 0;