Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 12 Apr 2016 22:11:30 +0000 (UTC)
From:      Navdeep Parhar <np@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r297883 - head/sys/dev/cxgbe
Message-ID:  <201604122211.u3CMBUOp064060@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: np
Date: Tue Apr 12 22:11:29 2016
New Revision: 297883
URL: https://svnweb.freebsd.org/changeset/base/297883

Log:
  cxgbe(4): Always dispatch all work requests that have been written to the
  descriptor ring before leaving drain_wrq_wr_list.

Modified:
  head/sys/dev/cxgbe/t4_sge.c

Modified: head/sys/dev/cxgbe/t4_sge.c
==============================================================================
--- head/sys/dev/cxgbe/t4_sge.c	Tue Apr 12 22:07:33 2016	(r297882)
+++ head/sys/dev/cxgbe/t4_sge.c	Tue Apr 12 22:11:29 2016	(r297883)
@@ -1726,7 +1726,8 @@ drain_wrq_wr_list(struct adapter *sc, st
 	MPASS(TAILQ_EMPTY(&wrq->incomplete_wrs));
 	wr = STAILQ_FIRST(&wrq->wr_list);
 	MPASS(wr != NULL);	/* Must be called with something useful to do */
-	dbdiff = IDXDIFF(eq->pidx, eq->dbidx, eq->sidx);
+	MPASS(eq->pidx == eq->dbidx);
+	dbdiff = 0;
 
 	do {
 		eq->cidx = read_hw_cidx(eq);
@@ -1738,7 +1739,7 @@ drain_wrq_wr_list(struct adapter *sc, st
 		MPASS(wr->wrq == wrq);
 		n = howmany(wr->wr_len, EQ_ESIZE);
 		if (available < n)
-			return;
+			break;
 
 		dst = (void *)&eq->desc[eq->pidx];
 		if (__predict_true(eq->sidx - eq->pidx > n)) {



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