svn commit: r276563 - head/sys/dev/cxgb/ulp/tom

Robert Watson rwatson at FreeBSD.org
Fri Jan 2 19:06:28 UTC 2015


Author: rwatson
Date: Fri Jan  2 19:06:27 2015
New Revision: 276563
URL: https://svnweb.freebsd.org/changeset/base/276563

Log:
  In mbuf_to_synq_entry(), use M_START() and M_SIZE() to calculate an offset
  into mbuf storage, to reduce knowledge about mbuf/cluster layout in the
  cxgb device driver.
  
  Reviewed by:	np
  Sponsored by:	EMC / Isilon Storage Division

Modified:
  head/sys/dev/cxgb/ulp/tom/cxgb_listen.c

Modified: head/sys/dev/cxgb/ulp/tom/cxgb_listen.c
==============================================================================
--- head/sys/dev/cxgb/ulp/tom/cxgb_listen.c	Fri Jan  2 19:05:39 2015	(r276562)
+++ head/sys/dev/cxgb/ulp/tom/cxgb_listen.c	Fri Jan  2 19:06:27 2015	(r276563)
@@ -442,26 +442,13 @@ static struct synq_entry *
 mbuf_to_synq_entry(struct mbuf *m)
 {
 	int len = roundup(sizeof (struct synq_entry), 8);
-	uint8_t *buf;
-	int buflen;
 
 	if (__predict_false(M_TRAILINGSPACE(m) < len)) {
 	    panic("%s: no room for synq_entry (%td, %d)\n", __func__,
 	    M_TRAILINGSPACE(m), len);
 	}
 
-	if (m->m_flags & M_EXT) {
-		buf = m->m_ext.ext_buf;
-		buflen = m->m_ext.ext_size;
-	} else if (m->m_flags & M_PKTHDR) {
-		buf = &m->m_pktdat[0];
-		buflen = MHLEN;
-	} else {
-		buf = &m->m_dat[0];
-		buflen = MLEN;
-	}
-
-	return ((void *)(buf + buflen - len));
+	return ((void *)(M_START(m) + M_SIZE(m) - len));
 }
 
 #ifdef KTR


More information about the svn-src-head mailing list