enum comp_state state;
int ret;
- if (!qp->valid || qp->comp.state == QP_STATE_ERROR ||
- qp->comp.state == QP_STATE_RESET) {
- bool notify = qp->valid &&
- (qp->comp.state == QP_STATE_ERROR);
+ if (!qp->valid || qp_state(qp) == IB_QPS_ERR ||
+ qp_state(qp) == IB_QPS_RESET) {
+ bool notify = qp->valid && (qp_state(qp) == IB_QPS_ERR);
+
drain_resp_pkts(qp);
flush_send_queue(qp, notify);
goto exit;
QUEUE_TYPE_FROM_CLIENT);
qp->req.state = QP_STATE_RESET;
- qp->comp.state = QP_STATE_RESET;
qp->req.opcode = -1;
qp->comp.opcode = -1;
/* move qp to the reset state */
qp->req.state = QP_STATE_RESET;
- qp->comp.state = QP_STATE_RESET;
/* drain work and packet queuesc */
rxe_requester(qp);
void rxe_qp_error(struct rxe_qp *qp)
{
qp->req.state = QP_STATE_ERROR;
- qp->comp.state = QP_STATE_ERROR;
qp->attr.qp_state = IB_QPS_ERR;
/* drain work and packet queues */
case IB_QPS_INIT:
rxe_dbg_qp(qp, "state -> INIT\n");
qp->req.state = QP_STATE_INIT;
- qp->comp.state = QP_STATE_INIT;
break;
case IB_QPS_RTR:
case IB_QPS_RTS:
rxe_dbg_qp(qp, "state -> RTS\n");
qp->req.state = QP_STATE_READY;
- qp->comp.state = QP_STATE_READY;
break;
case IB_QPS_SQD: