RDMA/rxe: Remove qp->comp.state
authorBob Pearson <rpearsonhpe@gmail.com>
Wed, 5 Apr 2023 04:26:08 +0000 (23:26 -0500)
committerJason Gunthorpe <jgg@nvidia.com>
Mon, 17 Apr 2023 19:01:44 +0000 (16:01 -0300)
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: Bob Pearson <rpearsonhpe@gmail.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/sw/rxe/rxe_comp.c
drivers/infiniband/sw/rxe/rxe_qp.c
drivers/infiniband/sw/rxe/rxe_verbs.h

index 2c70cdc..173ebfe 100644 (file)
@@ -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;
index fcbcca3..36e4a00 100644 (file)
@@ -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:
index 12594cb..1ae8dfd 100644 (file)
@@ -127,7 +127,6 @@ struct rxe_req_info {
 };
 
 struct rxe_comp_info {
-       enum rxe_qp_state       state;
        u32                     psn;
        int                     opcode;
        int                     timeout;