OSDN Git Service

RDMA/mlx5: Use set_mkc_access_pd_addr_fields() in reg_create()
authorJason Gunthorpe <jgg@nvidia.com>
Mon, 14 Sep 2020 11:26:50 +0000 (14:26 +0300)
committerJason Gunthorpe <jgg@nvidia.com>
Fri, 18 Sep 2020 16:02:42 +0000 (13:02 -0300)
reg_create() open codes this helper, use the shared code.

Link: https://lore.kernel.org/r/20200914112653.345244-3-leon@kernel.org
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/hw/mlx5/mr.c

index 3b040f6..9fc7673 100644 (file)
@@ -1190,29 +1190,16 @@ static struct mlx5_ib_mr *reg_create(struct ib_mr *ibmr, struct ib_pd *pd,
        MLX5_SET(create_mkey_in, in, pg_access, !!(pg_cap));
 
        mkc = MLX5_ADDR_OF(create_mkey_in, in, memory_key_mkey_entry);
+       set_mkc_access_pd_addr_fields(mkc, access_flags, virt_addr, pd);
        MLX5_SET(mkc, mkc, free, !populate);
        MLX5_SET(mkc, mkc, access_mode_1_0, MLX5_MKC_ACCESS_MODE_MTT);
-       if (MLX5_CAP_GEN(dev->mdev, relaxed_ordering_write))
-               MLX5_SET(mkc, mkc, relaxed_ordering_write,
-                        !!(access_flags & IB_ACCESS_RELAXED_ORDERING));
-       if (MLX5_CAP_GEN(dev->mdev, relaxed_ordering_read))
-               MLX5_SET(mkc, mkc, relaxed_ordering_read,
-                        !!(access_flags & IB_ACCESS_RELAXED_ORDERING));
-       MLX5_SET(mkc, mkc, a, !!(access_flags & IB_ACCESS_REMOTE_ATOMIC));
-       MLX5_SET(mkc, mkc, rw, !!(access_flags & IB_ACCESS_REMOTE_WRITE));
-       MLX5_SET(mkc, mkc, rr, !!(access_flags & IB_ACCESS_REMOTE_READ));
-       MLX5_SET(mkc, mkc, lw, !!(access_flags & IB_ACCESS_LOCAL_WRITE));
-       MLX5_SET(mkc, mkc, lr, 1);
        MLX5_SET(mkc, mkc, umr_en, 1);
 
-       MLX5_SET64(mkc, mkc, start_addr, virt_addr);
        MLX5_SET64(mkc, mkc, len, length);
-       MLX5_SET(mkc, mkc, pd, to_mpd(pd)->pdn);
        MLX5_SET(mkc, mkc, bsf_octword_size, 0);
        MLX5_SET(mkc, mkc, translations_octword_size,
                 get_octo_len(virt_addr, length, page_shift));
        MLX5_SET(mkc, mkc, log_page_size, page_shift);
-       MLX5_SET(mkc, mkc, qpn, 0xffffff);
        if (populate) {
                MLX5_SET(create_mkey_in, in, translations_octword_actual_size,
                         get_octo_len(virt_addr, length, page_shift));