Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 7 Jun 2009 04:39:58 +0000 (UTC)
From:      Kip Macy <kmacy@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r193608 - user/kmacy/releng_7_2_fcs/sys/dev/cxgb
Message-ID:  <200906070439.n574dwNh081632@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kmacy
Date: Sun Jun  7 04:39:58 2009
New Revision: 193608
URL: http://svn.freebsd.org/changeset/base/193608

Log:
  - revert to previous compl setting
  - fix multi-WR send

Modified:
  user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_sge.c

Modified: user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_sge.c
==============================================================================
--- user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_sge.c	Sun Jun  7 03:51:52 2009	(r193607)
+++ user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_sge.c	Sun Jun  7 04:39:58 2009	(r193608)
@@ -1055,8 +1055,8 @@ txq_prod(struct sge_txq *txq, unsigned i
 	 */
 	txqs->gen = txq->gen;
 	txq->unacked += ndesc;
-	txqs->compl = (txq->unacked & 8) << (S_WR_COMPL - 3);
-	txq->unacked &= 7;
+	txqs->compl = (txq->unacked & 32) << (S_WR_COMPL - 5);
+	txq->unacked &= 31;
 	txqs->pidx = txq->pidx;
 	txq->pidx += ndesc;
 #ifdef INVARIANTS
@@ -1304,7 +1304,9 @@ write_wr_hdr_sgl(unsigned int ndesc, str
 			wr_gen2(txd, txqs->gen);
 			flits = 1;
 		}
-		set_wr_hdr(wrp, wrp->wrh_hi |= htonl(F_WR_EOP),
+		wrp->wrh_hi |= htonl(F_WR_EOP);
+		
+		set_wr_hdr(wrp, wrp->wrh_hi,
 		    htonl(V_WR_LEN(WR_FLITS) | V_WR_GEN(ogen)) | wr_lo);
 		wr_gen2((struct tx_desc *)wp, ogen);
 	}
@@ -1372,6 +1374,7 @@ t3_encap(struct sge_qset *qs, struct mbu
 				printf("failed ... err=%d\n", err);
 			return (err);
 		}
+		mlen = m0->m_pkthdr.len;
 		ndesc = calc_tx_descs(m0, nsegs);
 	}
 	txq_prod(txq, ndesc, &txqs);
@@ -1427,7 +1430,6 @@ t3_encap(struct sge_qset *qs, struct mbu
 		GET_VTAG(cntrl, m0);
 		cntrl |= V_TXPKT_OPCODE(CPL_TX_PKT_LSO);
 		hdr->cntrl = htonl(cntrl);
-		mlen = m0->m_pkthdr.len;
 		hdr->len = htonl(mlen | 0x80000000);
 
 		DPRINTF("tso buf len=%d\n", mlen);
@@ -1500,7 +1502,6 @@ t3_encap(struct sge_qset *qs, struct mbu
 		if (__predict_false(!(m0->m_pkthdr.csum_flags & (CSUM_TCP | CSUM_UDP))))
 			cntrl |= F_TXPKT_L4CSUM_DIS;
 		cpl->cntrl = htonl(cntrl);
-		mlen = m0->m_pkthdr.len;
 		cpl->len = htonl(mlen | 0x80000000);
 
 		if (mlen <= PIO_LEN) {



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