Commit f55efc2e authored by Bob Pearson's avatar Bob Pearson Committed by Jason Gunthorpe
Browse files

RDMA/rxe: Remove qp->comp.state

The rxe driver has four different QP state variables,
    qp->attr.qp_state,
    qp->req.state,
    qp->comp.state, and
    qp->resp.state.
All of these basically carry the same information.

This patch replaces uses of qp->comp.state by qp->attr.qp_state.  This is
the second of three patches which will remove all but the
qp->attr.qp_state variable. This will bring the driver closer to the IBA
description.

Link: https://lore.kernel.org/r/20230405042611.6467-2-rpearsonhpe@gmail.com


Signed-off-by: default avatarBob Pearson <rpearsonhpe@gmail.com>
Signed-off-by: default avatarJason Gunthorpe <jgg@nvidia.com>
parent a588429a
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -619,10 +619,10 @@ int rxe_completer(struct rxe_qp *qp)
	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;
+0 −5
Original line number Diff line number Diff line
@@ -232,7 +232,6 @@ static int rxe_qp_init_req(struct rxe_dev *rxe, struct rxe_qp *qp,
					       QUEUE_TYPE_FROM_CLIENT);

	qp->req.state		= QP_STATE_RESET;
	qp->comp.state		= QP_STATE_RESET;
	qp->req.opcode		= -1;
	qp->comp.opcode		= -1;

@@ -477,7 +476,6 @@ static void rxe_qp_reset(struct rxe_qp *qp)

	/* 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);
@@ -530,7 +528,6 @@ static void rxe_qp_drain(struct rxe_qp *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 */
@@ -660,7 +657,6 @@ int rxe_qp_from_attr(struct rxe_qp *qp, struct ib_qp_attr *attr, int mask,
		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:
@@ -670,7 +666,6 @@ int rxe_qp_from_attr(struct rxe_qp *qp, struct ib_qp_attr *attr, int mask,
		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:
+0 −1
Original line number Diff line number Diff line
@@ -127,7 +127,6 @@ struct rxe_req_info {
};

struct rxe_comp_info {
	enum rxe_qp_state	state;
	u32			psn;
	int			opcode;
	int			timeout;