cxgbe(4): Always dispatch all work requests that have been written to the
descriptor ring before leaving drain_wrq_wr_list.
This commit is contained in:
parent
421a097e61
commit
b38b6a219d
@ -1726,7 +1726,8 @@ drain_wrq_wr_list(struct adapter *sc, struct sge_wrq *wrq)
|
||||
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, struct sge_wrq *wrq)
|
||||
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)) {
|
||||
|
Loading…
Reference in New Issue
Block a user