Re: [PATCH rdma-next v1 2/3] RDMA/mlx5: Separate DCI QP creation logic

From: Jason Gunthorpe
Date: Tue Jun 22 2021 - 14:46:03 EST


On Mon, Jun 21, 2021 at 10:06:15AM +0300, Leon Romanovsky wrote:
> From: Lior Nahmanson <liorna@xxxxxxxxxx>
>
> This patch isolates DCI QP creation logic to separate function, so this
> change will reduce complexity when adding new features to DCI QP without
> interfering with other QP types.
>
> The code was copied from create_user_qp() while taking only DCI relevant bits.
>
> Reviewed-by: Meir Lichtinger <meirl@xxxxxxxxxx>
> Signed-off-by: Lior Nahmanson <liorna@xxxxxxxxxx>
> Signed-off-by: Leon Romanovsky <leonro@xxxxxxxxxx>
> drivers/infiniband/hw/mlx5/qp.c | 157 ++++++++++++++++++++++++++++++++
> 1 file changed, 157 insertions(+)
>
> diff --git a/drivers/infiniband/hw/mlx5/qp.c b/drivers/infiniband/hw/mlx5/qp.c
> index 7a5f1eba60e3..65a380543f5a 100644
> +++ b/drivers/infiniband/hw/mlx5/qp.c
> @@ -1974,6 +1974,160 @@ static int create_xrc_tgt_qp(struct mlx5_ib_dev *dev, struct mlx5_ib_qp *qp,
> return 0;
> }
>
> +static int create_dci(struct mlx5_ib_dev *dev, struct ib_pd *pd,
> + struct mlx5_ib_qp *qp,
> + struct mlx5_create_qp_params *params)
> +{

This is a huge amount of copying just to add 4 lines, why?

There must be a better way to do this qp stuff.

Why not put more stuff in _create_user_qp()?

Jason