|
@@ -738,10 +738,8 @@ static int iwch_destroy_qp(struct ib_qp *ib_qp)
|
|
|
qhp = to_iwch_qp(ib_qp);
|
|
|
rhp = qhp->rhp;
|
|
|
|
|
|
- if (qhp->attr.state == IWCH_QP_STATE_RTS) {
|
|
|
- attrs.next_state = IWCH_QP_STATE_ERROR;
|
|
|
- iwch_modify_qp(rhp, qhp, IWCH_QP_ATTR_NEXT_STATE, &attrs, 0);
|
|
|
- }
|
|
|
+ attrs.next_state = IWCH_QP_STATE_ERROR;
|
|
|
+ iwch_modify_qp(rhp, qhp, IWCH_QP_ATTR_NEXT_STATE, &attrs, 0);
|
|
|
wait_event(qhp->wait, !qhp->ep);
|
|
|
|
|
|
remove_handle(rhp, &rhp->qpidr, qhp->wq.qpid);
|