|
@@ -1005,7 +1005,8 @@ void qib_rc_send_complete(struct qib_qp *qp, struct qib_ib_header *hdr)
|
|
|
* there are still requests that haven't been acked.
|
|
|
*/
|
|
|
if ((psn & IB_BTH_REQ_ACK) && qp->s_acked != qp->s_tail &&
|
|
|
- !(qp->s_flags & (QIB_S_TIMER | QIB_S_WAIT_RNR | QIB_S_WAIT_PSN)))
|
|
|
+ !(qp->s_flags & (QIB_S_TIMER | QIB_S_WAIT_RNR | QIB_S_WAIT_PSN)) &&
|
|
|
+ (ib_qib_state_ops[qp->state] & QIB_PROCESS_RECV_OK))
|
|
|
start_timer(qp);
|
|
|
|
|
|
while (qp->s_last != qp->s_acked) {
|