|
@@ -271,13 +271,9 @@ int qib_make_rc_req(struct qib_qp *qp)
|
|
|
goto bail;
|
|
|
}
|
|
|
wqe = get_swqe_ptr(qp, qp->s_last);
|
|
|
- while (qp->s_last != qp->s_acked) {
|
|
|
- qib_send_complete(qp, wqe, IB_WC_SUCCESS);
|
|
|
- if (++qp->s_last >= qp->s_size)
|
|
|
- qp->s_last = 0;
|
|
|
- wqe = get_swqe_ptr(qp, qp->s_last);
|
|
|
- }
|
|
|
- qib_send_complete(qp, wqe, IB_WC_WR_FLUSH_ERR);
|
|
|
+ qib_send_complete(qp, wqe, qp->s_last != qp->s_acked ?
|
|
|
+ IB_WC_SUCCESS : IB_WC_WR_FLUSH_ERR);
|
|
|
+ /* will get called again */
|
|
|
goto done;
|
|
|
}
|
|
|
|