svn commit: r261166 - head/sys/dev/virtio/network

Bryan Venteicher bryanv at FreeBSD.org
Sat Jan 25 20:12:09 UTC 2014


Author: bryanv
Date: Sat Jan 25 19:55:42 2014
New Revision: 261166
URL: http://svnweb.freebsd.org/changeset/base/261166

Log:
  Move duplicated transmit start code into a single function

Modified:
  head/sys/dev/virtio/network/if_vtnet.c

Modified: head/sys/dev/virtio/network/if_vtnet.c
==============================================================================
--- head/sys/dev/virtio/network/if_vtnet.c	Sat Jan 25 19:36:27 2014	(r261165)
+++ head/sys/dev/virtio/network/if_vtnet.c	Sat Jan 25 19:55:42 2014	(r261166)
@@ -147,6 +147,7 @@ static int	vtnet_txq_mq_start_locked(str
 static int	vtnet_txq_mq_start(struct ifnet *, struct mbuf *);
 static void	vtnet_txq_tq_deferred(void *, int);
 #endif
+static void	vtnet_txq_start(struct vtnet_txq *);
 static void	vtnet_txq_tq_intr(void *, int);
 static void	vtnet_txq_eof(struct vtnet_txq *);
 static void	vtnet_tx_vq_intr(void *);
@@ -2309,6 +2310,24 @@ vtnet_txq_tq_deferred(void *xtxq, int pe
 #endif /* VTNET_LEGACY_TX */
 
 static void
+vtnet_txq_start(struct vtnet_txq *txq)
+{
+	struct vtnet_softc *sc;
+	struct ifnet *ifp;
+
+	sc = txq->vtntx_sc;
+	ifp = sc->vtnet_ifp;
+
+#ifdef VTNET_LEGACY_TX
+	if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd))
+		vtnet_start_locked(txq, ifp);
+#else
+	if (!drbr_empty(ifp, txq->vtntx_br))
+		vtnet_txq_mq_start_locked(txq, NULL);
+#endif
+}
+
+static void
 vtnet_txq_tq_intr(void *xtxq, int pending)
 {
 	struct vtnet_softc *sc;
@@ -2328,13 +2347,7 @@ vtnet_txq_tq_intr(void *xtxq, int pendin
 
 	vtnet_txq_eof(txq);
 
-#ifdef VTNET_LEGACY_TX
-	if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd))
-		vtnet_start_locked(txq, ifp);
-#else
-	if (!drbr_empty(ifp, txq->vtntx_br))
-		vtnet_txq_mq_start_locked(txq, NULL);
-#endif
+	vtnet_txq_start(txq);
 
 	if (vtnet_txq_enable_intr(txq) != 0) {
 		vtnet_txq_disable_intr(txq);
@@ -2405,13 +2418,7 @@ again:
 
 	vtnet_txq_eof(txq);
 
-#ifdef VTNET_LEGACY_TX
-	if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd))
-		vtnet_start_locked(txq, ifp);
-#else
-	if (!drbr_empty(ifp, txq->vtntx_br))
-		vtnet_txq_mq_start_locked(txq, NULL);
-#endif
+	vtnet_txq_start(txq);
 
 	if (vtnet_txq_enable_intr(txq) != 0) {
 		vtnet_txq_disable_intr(txq);
@@ -2431,24 +2438,16 @@ again:
 static void
 vtnet_tx_start_all(struct vtnet_softc *sc)
 {
-	struct ifnet *ifp;
 	struct vtnet_txq *txq;
 	int i;
 
-	ifp = sc->vtnet_ifp;
 	VTNET_CORE_LOCK_ASSERT(sc);
 
 	for (i = 0; i < sc->vtnet_act_vq_pairs; i++) {
 		txq = &sc->vtnet_txqs[i];
 
 		VTNET_TXQ_LOCK(txq);
-#ifdef VTNET_LEGACY_TX
-		if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd))
-			vtnet_start_locked(txq, ifp);
-#else
-		if (!drbr_empty(ifp, txq->vtntx_br))
-			vtnet_txq_mq_start_locked(txq, NULL);
-#endif
+		vtnet_txq_start(txq);
 		VTNET_TXQ_UNLOCK(txq);
 	}
 }


More information about the svn-src-all mailing list