From: Michael Guralnik <michaelgur@xxxxxxxxxxxx> Return ODP capabilities for DC to user in alloc_context. Signed-off-by: Michael Guralnik <michaelgur@xxxxxxxxxxxx> Reviewed-by: Moni Shoua <monis@xxxxxxxxxxxx> Signed-off-by: Leon Romanovsky <leonro@xxxxxxxxxxxx> --- drivers/infiniband/hw/mlx5/main.c | 6 ++++++ include/uapi/rdma/mlx5-abi.h | 3 +++ 2 files changed, 9 insertions(+) diff --git a/drivers/infiniband/hw/mlx5/main.c b/drivers/infiniband/hw/mlx5/main.c index 4a3d700cd783..a53e0dc7c17f 100644 --- a/drivers/infiniband/hw/mlx5/main.c +++ b/drivers/infiniband/hw/mlx5/main.c @@ -1954,6 +1954,12 @@ static int mlx5_ib_alloc_ucontext(struct ib_ucontext *uctx, resp.response_length += sizeof(resp.dump_fill_mkey); } + if (field_avail(typeof(resp), dc_odp_caps, udata->outlen)) { + resp.dc_odp_caps = dev->dc_odp_caps; + resp.comp_mask |= MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_DC_ODP_CAPS; + resp.response_length += sizeof(resp.dc_odp_caps); + } + err = ib_copy_to_udata(udata, &resp, resp.response_length); if (err) goto out_mdev; diff --git a/include/uapi/rdma/mlx5-abi.h b/include/uapi/rdma/mlx5-abi.h index 624f5b53eb1f..7cab806d7fa7 100644 --- a/include/uapi/rdma/mlx5-abi.h +++ b/include/uapi/rdma/mlx5-abi.h @@ -98,6 +98,7 @@ struct mlx5_ib_alloc_ucontext_req_v2 { enum mlx5_ib_alloc_ucontext_resp_mask { MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_CORE_CLOCK_OFFSET = 1UL << 0, MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_DUMP_FILL_MKEY = 1UL << 1, + MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_DC_ODP_CAPS = 1UL << 2, }; enum mlx5_user_cmds_supp_uhw { @@ -147,6 +148,8 @@ struct mlx5_ib_alloc_ucontext_resp { __u32 num_uars_per_page; __u32 num_dyn_bfregs; __u32 dump_fill_mkey; + __u32 dc_odp_caps; + __u32 reserved; }; struct mlx5_ib_alloc_pd_resp { -- 2.20.1