|
@@ -468,6 +468,10 @@ int qib_error_qp(struct qib_qp *qp, enum ib_wc_status err)
|
|
qp->s_flags &= ~(QIB_S_TIMER | QIB_S_WAIT_RNR);
|
|
qp->s_flags &= ~(QIB_S_TIMER | QIB_S_WAIT_RNR);
|
|
del_timer(&qp->s_timer);
|
|
del_timer(&qp->s_timer);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ if (qp->s_flags & QIB_S_ANY_WAIT_SEND)
|
|
|
|
+ qp->s_flags &= ~QIB_S_ANY_WAIT_SEND;
|
|
|
|
+
|
|
spin_lock(&dev->pending_lock);
|
|
spin_lock(&dev->pending_lock);
|
|
if (!list_empty(&qp->iowait) && !(qp->s_flags & QIB_S_BUSY)) {
|
|
if (!list_empty(&qp->iowait) && !(qp->s_flags & QIB_S_BUSY)) {
|
|
qp->s_flags &= ~QIB_S_ANY_WAIT_IO;
|
|
qp->s_flags &= ~QIB_S_ANY_WAIT_IO;
|