Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 8 Jul 2016 15:44:03 GMT
From:      vincenzo@FreeBSD.org
To:        svn-soc-all@FreeBSD.org
Subject:   socsvn commit: r305827 - soc2016/vincenzo/head/sys/dev/netmap
Message-ID:  <201607081544.u68Fi3F0007876@socsvn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: vincenzo
Date: Fri Jul  8 15:44:03 2016
New Revision: 305827
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=305827

Log:
   freebsd: ptnet_rx_slot: remove mtail_p argument, use return value

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	Fri Jul  8 15:43:52 2016	(r305826)
+++ soc2016/vincenzo/head/sys/dev/netmap/if_ptnet.c	Fri Jul  8 15:44:03 2016	(r305827)
@@ -1532,10 +1532,9 @@
 	return ptnet_drain_transmit_queue(pq);
 }
 
-static inline int
-ptnet_rx_slot(uint8_t *nmbuf, unsigned int nmbuf_len, struct mbuf **mtail_p)
+static inline struct mbuf *
+ptnet_rx_slot(struct mbuf *mtail, uint8_t *nmbuf, unsigned int nmbuf_len)
 {
-	struct mbuf *mtail = *mtail_p;
 	uint8_t *mdata = mtod(mtail, uint8_t *) + mtail->m_len;
 
 	do {
@@ -1546,11 +1545,11 @@
 
 			mf = m_getcl(M_NOWAIT, MT_DATA, 0);
 			if (unlikely(!mf)) {
-				return ENOMEM;
+				return NULL;
 			}
 
 			mtail->m_next = mf;
-			mtail = *mtail_p = mf;
+			mtail = mf;
 			mdata = mtod(mtail, uint8_t *);
 			mtail->m_len = 0;
 		}
@@ -1568,7 +1567,7 @@
 		mtail->m_len += copy;
 	} while (nmbuf_len);
 
-	return 0;
+	return mtail;
 }
 
 static int
@@ -1641,8 +1640,6 @@
 
 		/* Scan all the netmap slots containing the current packet. */
 		for (;;) {
-			int err;
-
 			slot = ring->slot + head;
 			mhead->m_pkthdr.len += slot->len;
 
@@ -1651,8 +1648,8 @@
 					  head, ring->tail, slot->len,
 					  slot->flags));
 
-			err = ptnet_rx_slot(NMB(na, slot), slot->len, &mtail);
-			if (unlikely(err)) {
+			mtail = ptnet_rx_slot(mtail, NMB(na, slot), slot->len);
+			if (unlikely(!mtail)) {
 				/* Ouch. We ran out of memory while processing
 				 * a packet. We have to restore the previous
 				 * head position, free the mbuf chain, and



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201607081544.u68Fi3F0007876>