RDMA/efa: Use the correct current and new states in modify QP
authorGal Pressman <galpress@amazon.com>
Tue, 1 Dec 2020 09:17:24 +0000 (11:17 +0200)
committerJason Gunthorpe <jgg@nvidia.com>
Wed, 2 Dec 2020 00:53:48 +0000 (20:53 -0400)
The local variables cur_state and new_state hold the state that should be
used for the modify QP operation instead of the ones in the ib_qp_attr
struct.

Fixes: 40909f664d27 ("RDMA/efa: Add EFA verbs implementation")
Link: https://lore.kernel.org/r/20201201091724.37016-1-galpress@amazon.com
Reviewed-by: Firas JahJah <firasj@amazon.com>
Reviewed-by: Yossi Leybovich <sleybo@amazon.com>
Signed-off-by: Gal Pressman <galpress@amazon.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/hw/efa/efa_verbs.c

index 191e084..4e940fc 100644 (file)
@@ -940,8 +940,8 @@ int efa_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *qp_attr,
                        1);
                EFA_SET(&params.modify_mask,
                        EFA_ADMIN_MODIFY_QP_CMD_CUR_QP_STATE, 1);
-               params.cur_qp_state = qp_attr->cur_qp_state;
-               params.qp_state = qp_attr->qp_state;
+               params.cur_qp_state = cur_state;
+               params.qp_state = new_state;
        }
 
        if (qp_attr_mask & IB_QP_EN_SQD_ASYNC_NOTIFY) {