Subject: Re: [PATCH mlx5-next 02/24] net/mlx5: Update cq.c to new cmd interface

From: Leon Romanovsky <[email-masked]>
Date: Wed, 22 Apr 2020 19:49:48 +0300

On Mon, Apr 20, 2020 at 02:41:14PM +0300, Leon Romanovsky wrote:
> From: Leon Romanovsky <[email-masked]>
>
> Do mass update of cq.c to reuse newly introduced
> mlx5_cmd_exec_in*() interfaces.
>
> Reviewed-by: Moshe Shemesh <[email-masked]>
> Signed-off-by: Leon Romanovsky <[email-masked]>
> ---
>  drivers/net/ethernet/mellanox/mlx5/core/cq.c  | 24 +++++++------------
>  .../net/ethernet/mellanox/mlx5/core/debugfs.c |  2 +-
>  .../ethernet/mellanox/mlx5/core/en/health.c   |  2 +-
>  include/linux/mlx5/cq.h                       |  2 +-
>  4 files changed, 12 insertions(+), 18 deletions(-)
>
> diff --git a/drivers/net/ethernet/mellanox/mlx5/core/cq.c b/drivers/net/ethernet/mellanox/mlx5/core/cq.c
> index 4477a590b308..1a6f1f14da97 100644
> --- a/drivers/net/ethernet/mellanox/mlx5/core/cq.c
> +++ b/drivers/net/ethernet/mellanox/mlx5/core/cq.c
> @@ -90,8 +90,7 @@ int mlx5_core_create_cq(struct mlx5_core_dev *dev, struct mlx5_core_cq *cq,
>  			u32 *in, int inlen, u32 *out, int outlen)
>  {
>  	int eqn = MLX5_GET(cqc, MLX5_ADDR_OF(create_cq_in, in, cq_context), c_eqn);
> -	u32 dout[MLX5_ST_SZ_DW(destroy_cq_out)];
> -	u32 din[MLX5_ST_SZ_DW(destroy_cq_in)];
> +	u32 din[MLX5_ST_SZ_DW(destroy_cq_in)] = {};
>  	struct mlx5_eq_comp *eq;
>  	int err;
>
> @@ -141,20 +140,17 @@ int mlx5_core_create_cq(struct mlx5_core_dev *dev, struct mlx5_core_cq *cq,
>  err_cq_add:
>  	mlx5_eq_del_cq(&eq->core, cq);
>  err_cmd:
> -	memset(din, 0, sizeof(din));
> -	memset(dout, 0, sizeof(dout));
>  	MLX5_SET(destroy_cq_in, din, opcode, MLX5_CMD_OP_DESTROY_CQ);
>  	MLX5_SET(destroy_cq_in, din, cqn, cq->cqn);
>  	MLX5_SET(destroy_cq_in, din, uid, cq->uid);
> -	mlx5_cmd_exec(dev, din, sizeof(din), dout, sizeof(dout));
> +	mlx5_cmd_exec_in(dev, destroy_cq, din);
>  	return err;
>  }
>  EXPORT_SYMBOL(mlx5_core_create_cq);
>
>  int mlx5_core_destroy_cq(struct mlx5_core_dev *dev, struct mlx5_core_cq *cq)
>  {
> -	u32 out[MLX5_ST_SZ_DW(destroy_cq_out)] = {0};
> -	u32 in[MLX5_ST_SZ_DW(destroy_cq_in)] = {0};
> +	u32 in[MLX5_ST_SZ_DW(destroy_cq_in)] = {};
>  	int err;
>
>  	mlx5_eq_del_cq(mlx5_get_async_eq(dev), cq);
> @@ -163,7 +159,7 @@ int mlx5_core_destroy_cq(struct mlx5_core_dev *dev, struct mlx5_core_cq *cq)
>  	MLX5_SET(destroy_cq_in, in, opcode, MLX5_CMD_OP_DESTROY_CQ);
>  	MLX5_SET(destroy_cq_in, in, cqn, cq->cqn);
>  	MLX5_SET(destroy_cq_in, in, uid, cq->uid);
> -	err = mlx5_cmd_exec(dev, in, sizeof(in), out, sizeof(out));
> +	err = mlx5_cmd_exec_in(dev, destroy_cq, in);
>  	if (err)
>  		return err;
>
> @@ -178,24 +174,22 @@ int mlx5_core_destroy_cq(struct mlx5_core_dev *dev, struct mlx5_core_cq *cq)
>  EXPORT_SYMBOL(mlx5_core_destroy_cq);
>
>  int mlx5_core_query_cq(struct mlx5_core_dev *dev, struct mlx5_core_cq *cq,
> -		       u32 *out, int outlen)
> +		       u32 *out)
>  {
> -	u32 in[MLX5_ST_SZ_DW(query_cq_in)] = {0};
> +	u32 in[MLX5_ST_SZ_DW(query_cq_in)] = {};
>
>  	MLX5_SET(query_cq_in, in, opcode, MLX5_CMD_OP_QUERY_CQ);
>  	MLX5_SET(query_cq_in, in, cqn, cq->cqn);
> -	return mlx5_cmd_exec(dev, in, sizeof(in), out, outlen);
> +	return mlx5_cmd_exec_inout(dev, query_cq, in, out);
>  }
>  EXPORT_SYMBOL(mlx5_core_query_cq);
>
>  int mlx5_core_modify_cq(struct mlx5_core_dev *dev, struct mlx5_core_cq *cq,
>  			u32 *in, int inlen)
>  {
> -	u32 out[MLX5_ST_SZ_DW(modify_cq_out)] = {0};
> -
>  	MLX5_SET(modify_cq_in, in, opcode, MLX5_CMD_OP_MODIFY_CQ);
>  	MLX5_SET(modify_cq_in, in, uid, cq->uid);
> -	return mlx5_cmd_exec(dev, in, inlen, out, sizeof(out));
> +	return mlx5_cmd_exec_in(dev, modify_cq, in);
>  }
>  EXPORT_SYMBOL(mlx5_core_modify_cq);
>

This hunk needs this fixup:

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/cq.c b/drivers/net/ethernet/mellanox/mlx5/core/cq.c
index 1a6f1f14da97..8379b24cb838 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/cq.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/cq.c
@@ -187,9 +187,11 @@ EXPORT_SYMBOL(mlx5_core_query_cq);
 int mlx5_core_modify_cq(struct mlx5_core_dev *dev, struct mlx5_core_cq *cq,
                        u32 *in, int inlen)
 {
+       u32 out[MLX5_ST_SZ_DW(modify_cq_out)] = {};
+
        MLX5_SET(modify_cq_in, in, opcode, MLX5_CMD_OP_MODIFY_CQ);
        MLX5_SET(modify_cq_in, in, uid, cq->uid);
-       return mlx5_cmd_exec_in(dev, modify_cq, in);
+       return mlx5_cmd_exec(dev, in, inlen, out, sizeof(out));
 }
 EXPORT_SYMBOL(mlx5_core_modify_cq);

Thanks