Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 21 Feb 2008 06:25:44 GMT
From:      Kip Macy <kmacy@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 135874 for review
Message-ID:  <200802210625.m1L6PiIh067574@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=135874

Change 135874 by kmacy@kmacy:entropy:iwarp on 2008/02/21 06:24:47

	calculate the number of descriptors correctly for an offload request

Affected files ...

.. //depot/projects/iwarp/sys/dev/cxgb/cxgb_sge.c#14 edit

Differences ...

==== //depot/projects/iwarp/sys/dev/cxgb/cxgb_sge.c#14 (text+ko) ====

@@ -1945,18 +1945,25 @@
 calc_tx_descs_ofld(struct mbuf *m, unsigned int nsegs)
 {
 	unsigned int flits, cnt = 0;
+	int ndescs;
 
+	if (m->m_len <= WR_LEN && nsegs == 0)
+		return (1);                 /* packet fits as immediate data */
 
-	if (m->m_len <= WR_LEN)
-		return 1;                 /* packet fits as immediate data */
-
 	if (m->m_flags & M_IOVEC)
 		cnt = mtomv(m)->mv_count;
+	else
+		cnt = nsegs;
 
 	/* headers */
-	flits = ((uint8_t *)m->m_pkthdr.header - mtod(m, uint8_t *)) / 8;
+	flits = m->m_len / 8;
+
+	ndescs = flits_to_desc(flits + sgl_len(cnt));
+
+	CTR4(KTR_CXGB, "flits=%d sgl_len=%d nsegs=%d ndescs=%d",
+	    flits, sgl_len(cnt), nsegs, ndescs);
 
-	return flits_to_desc(flits + sgl_len(cnt));
+	return (ndescs);
 }
 
 /**



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