RDMA/mlx5: Use direct modify QP implementation
As a preparation to removal hand crafted mlx5_qp_context, convert counter code to use mlx5_cmd_exec_in() directly. Link: https://lore.kernel.org/r/20200526115440.205922-5-leon@kernel.org Reviewed-by: Mark Zhang <markz@mellanox.com> Signed-off-by: Leon Romanovsky <leonro@mellanox.com> Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
This commit is contained in:
parent
e383085c24
commit
64bae2d455
|
@ -3688,10 +3688,11 @@ static int __mlx5_ib_qp_set_counter(struct ib_qp *qp,
|
||||||
struct rdma_counter *counter)
|
struct rdma_counter *counter)
|
||||||
{
|
{
|
||||||
struct mlx5_ib_dev *dev = to_mdev(qp->device);
|
struct mlx5_ib_dev *dev = to_mdev(qp->device);
|
||||||
|
u32 in[MLX5_ST_SZ_DW(rts2rts_qp_in)] = {};
|
||||||
struct mlx5_ib_qp *mqp = to_mqp(qp);
|
struct mlx5_ib_qp *mqp = to_mqp(qp);
|
||||||
struct mlx5_qp_context context = {};
|
|
||||||
struct mlx5_ib_qp_base *base;
|
struct mlx5_ib_qp_base *base;
|
||||||
u32 set_id;
|
u32 set_id;
|
||||||
|
u32 *qpc;
|
||||||
|
|
||||||
if (counter)
|
if (counter)
|
||||||
set_id = counter->id;
|
set_id = counter->id;
|
||||||
|
@ -3699,11 +3700,15 @@ static int __mlx5_ib_qp_set_counter(struct ib_qp *qp,
|
||||||
set_id = mlx5_ib_get_counters_id(dev, mqp->port - 1);
|
set_id = mlx5_ib_get_counters_id(dev, mqp->port - 1);
|
||||||
|
|
||||||
base = &mqp->trans_qp.base;
|
base = &mqp->trans_qp.base;
|
||||||
context.qp_counter_set_usr_page &= cpu_to_be32(0xffffff);
|
MLX5_SET(rts2rts_qp_in, in, opcode, MLX5_CMD_OP_RTS2RTS_QP);
|
||||||
context.qp_counter_set_usr_page |= cpu_to_be32(set_id << 24);
|
MLX5_SET(rts2rts_qp_in, in, qpn, base->mqp.qpn);
|
||||||
return mlx5_core_qp_modify(dev, MLX5_CMD_OP_RTS2RTS_QP,
|
MLX5_SET(rts2rts_qp_in, in, uid, base->mqp.uid);
|
||||||
MLX5_QP_OPTPAR_COUNTER_SET_ID, &context,
|
MLX5_SET(rts2rts_qp_in, in, opt_param_mask,
|
||||||
&base->mqp);
|
MLX5_QP_OPTPAR_COUNTER_SET_ID);
|
||||||
|
|
||||||
|
qpc = MLX5_ADDR_OF(rts2rts_qp_in, in, qpc);
|
||||||
|
MLX5_SET(qpc, qpc, counter_set_id, set_id);
|
||||||
|
return mlx5_cmd_exec_in(dev->mdev, rts2rts_qp, in);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int __mlx5_ib_modify_qp(struct ib_qp *ibqp,
|
static int __mlx5_ib_modify_qp(struct ib_qp *ibqp,
|
||||||
|
|
Loading…
Reference in New Issue