IB/qib: Clear WAIT_SEND flags when setting QP to error state
[linux.git] / drivers / infiniband / hw / qib / qib_qp.c
index 6c39851d2dedb3b02514dff420ddbc08acf178c1..32dacd44415823bad74f086a1efc4f4545e9397c 100644 (file)
@@ -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);
                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);
        if (!list_empty(&qp->iowait) && !(qp->s_flags & QIB_S_BUSY)) {
                qp->s_flags &= ~QIB_S_ANY_WAIT_IO;