Module Name:    src
Committed By:   thorpej
Date:           Sun Sep 18 15:57:13 UTC 2022

Modified Files:
        src/sys/arch/evbppc/virtex/dev: if_temac.c

Log Message:
Eliminate use of IFF_OACTIVE.


To generate a diff of this commit:
cvs rdiff -u -r1.19 -r1.20 src/sys/arch/evbppc/virtex/dev/if_temac.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/arch/evbppc/virtex/dev/if_temac.c
diff -u src/sys/arch/evbppc/virtex/dev/if_temac.c:1.19 src/sys/arch/evbppc/virtex/dev/if_temac.c:1.20
--- src/sys/arch/evbppc/virtex/dev/if_temac.c:1.19	Sun Feb 27 11:49:28 2022
+++ src/sys/arch/evbppc/virtex/dev/if_temac.c	Sun Sep 18 15:57:13 2022
@@ -1,4 +1,4 @@
-/* 	$NetBSD: if_temac.c,v 1.19 2022/02/27 11:49:28 riastradh Exp $ */
+/* 	$NetBSD: if_temac.c,v 1.20 2022/09/18 15:57:13 thorpej Exp $ */
 
 /*
  * Copyright (c) 2006 Jachym Holecek
@@ -40,7 +40,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_temac.c,v 1.19 2022/02/27 11:49:28 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_temac.c,v 1.20 2022/09/18 15:57:13 thorpej Exp $");
 
 
 #include <sys/param.h>
@@ -635,7 +635,6 @@ temac_init(struct ifnet *ifp)
 	}
 
 	ifp->if_flags |= IFF_RUNNING;
-	ifp->if_flags &= ~IFF_OACTIVE;
 
 	return (0);
 }
@@ -684,16 +683,11 @@ temac_start(struct ifnet *ifp)
 	 *
 	 * We schedule one interrupt per Tx batch.
 	 */
-	while (1) {
+	while (sc->sc_txsfree) {
 		IFQ_POLL(&ifp->if_snd, m);
 		if (m == NULL)
 			break;
 
-		if (sc->sc_txsfree == 0) {
-			ifp->if_flags |= IFF_OACTIVE;
-			break;
-		}
-
 		txs = &sc->sc_txsoft[sc->sc_txscur];
 		dmap = txs->txs_dmap;
 
@@ -718,12 +712,11 @@ temac_start(struct ifnet *ifp)
 		}
 
 		/*
-		 * If we're short on DMA descriptors, notify upper layers
-		 * and leave this packet for later.
+		 * If we're short on DMA descriptors; leave this packet
+		 * for later.
 		 */
 		if (dmap->dm_nsegs > sc->sc_txfree) {
 			bus_dmamap_unload(sc->sc_dmat, dmap);
-			ifp->if_flags |= IFF_OACTIVE;
 			break;
 		}
 
@@ -820,7 +813,7 @@ temac_stop(struct ifnet *ifp, int disabl
 	sc->sc_txbusy = 0;
 
 	/* Acknowledge we're down. */
-	ifp->if_flags &= ~(IFF_RUNNING | IFF_OACTIVE);
+	ifp->if_flags &= ~IFF_RUNNING;
 }
 
 static int
@@ -1008,7 +1001,6 @@ temac_txreap(struct temac_softc *sc)
 {
 	struct temac_txsoft 	*txs;
 	bus_dmamap_t 		dmap;
-	int 			sent = 0;
 
 	/*
 	 * Transmit interrupts happen on the last descriptor of Tx jobs.
@@ -1030,7 +1022,6 @@ temac_txreap(struct temac_softc *sc)
 		txs->txs_mbuf = NULL;
 
 		if_statinc(&sc->sc_if, if_opackets);
-		sent = 1;
 
 		sc->sc_txsreap = TEMAC_TXSNEXT(sc->sc_txsreap);
 		sc->sc_txsfree++;
@@ -1043,9 +1034,6 @@ temac_txreap(struct temac_softc *sc)
 			break;
 		}
 	}
-
-	if (sent && (sc->sc_if.if_flags & IFF_OACTIVE))
-		sc->sc_if.if_flags &= ~IFF_OACTIVE;
 }
 
 static int

Reply via email to