RDMA/mlx5: set UMR wqe fence according to HCA cap
Cache the needed umr_fence and set the wqe ctrl segmennt accordingly. Signed-off-by: Max Gurtovoy <maxg@mellanox.com> Acked-by: Leon Romanovsky <leon@kernel.org> Reviewed-by: Sagi Grimberg <sagi@grimberg.me> Signed-off-by: Doug Ledford <dledford@redhat.com>
This commit is contained in:

committed by
Doug Ledford

parent
1410a90ae4
commit
6e8484c5cf
@@ -2979,6 +2979,18 @@ error_0:
|
||||
return ret;
|
||||
}
|
||||
|
||||
static u8 mlx5_get_umr_fence(u8 umr_fence_cap)
|
||||
{
|
||||
switch (umr_fence_cap) {
|
||||
case MLX5_CAP_UMR_FENCE_NONE:
|
||||
return MLX5_FENCE_MODE_NONE;
|
||||
case MLX5_CAP_UMR_FENCE_SMALL:
|
||||
return MLX5_FENCE_MODE_INITIATOR_SMALL;
|
||||
default:
|
||||
return MLX5_FENCE_MODE_STRONG_ORDERING;
|
||||
}
|
||||
}
|
||||
|
||||
static int create_dev_resources(struct mlx5_ib_resources *devr)
|
||||
{
|
||||
struct ib_srq_init_attr attr;
|
||||
@@ -3693,6 +3705,8 @@ static void *mlx5_ib_add(struct mlx5_core_dev *mdev)
|
||||
|
||||
mlx5_ib_internal_fill_odp_caps(dev);
|
||||
|
||||
dev->umr_fence = mlx5_get_umr_fence(MLX5_CAP_GEN(mdev, umr_fence));
|
||||
|
||||
if (MLX5_CAP_GEN(mdev, imaicl)) {
|
||||
dev->ib_dev.alloc_mw = mlx5_ib_alloc_mw;
|
||||
dev->ib_dev.dealloc_mw = mlx5_ib_dealloc_mw;
|
||||
|
Reference in New Issue
Block a user