socsvn commit: r305585 - soc2016/vincenzo/head/sys/dev/netmap

vincenzo at FreeBSD.org vincenzo at FreeBSD.org
Mon Jun 27 09:39:20 UTC 2016


Author: vincenzo
Date: Mon Jun 27 09:39:19 2016
New Revision: 305585
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305585

Log:
   freebsd: ptnet_rx_eof: use for construct to avoid goto

Modified:
  soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c

Modified: soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c
==============================================================================
--- soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c	Mon Jun 27 09:35:36 2016	(r305584)
+++ soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c	Mon Jun 27 09:39:19 2016	(r305585)
@@ -1323,9 +1323,8 @@
 	struct netmap_kring *kring = na->rx_rings + pq->kring_id;
 	struct netmap_ring *ring = kring->ring;
 	unsigned int const lim = kring->nkr_num_slots - 1;
-	unsigned int budget = PTNET_RX_BUDGET;
-	unsigned int head = ring->head;
 	struct ifnet *ifp = sc->ifp;
+	unsigned int budget, head;
 
 	PTNET_Q_LOCK(pq);
 
@@ -1335,7 +1334,9 @@
 
 	kring->nr_kflags &= ~NKR_PENDINTR;
 
-	while (head != ring->tail && budget) {
+	for (head = ring->head, budget = PTNET_RX_BUDGET;
+		head != ring->tail && budget;
+			head = nm_next(head, lim), budget--) {
 		struct netmap_slot *slot = ring->slot + head;
 		unsigned int nmbuf_len = slot->len;
 		uint8_t *nmbuf = NMB(na, slot);
@@ -1344,7 +1345,7 @@
 		if (unlikely(nmbuf_len > MCLBYTES)) {
 			RD(1, "Dropping long frame: len %u > %u",
 			      nmbuf_len, MCLBYTES);
-			goto next;
+			continue;
 		}
 
 		DBG(device_printf(sc->dev, "%s: h %u t %u rcv frame len %u\n",
@@ -1371,9 +1372,6 @@
 		PTNET_Q_UNLOCK(pq);
 		(*ifp->if_input)(ifp, m);
 		PTNET_Q_LOCK(pq);
-next:
-		head = nm_next(head, lim);
-		budget--;
 	}
 
 	if (budget != PTNET_RX_BUDGET) {


More information about the svn-soc-all mailing list