diff options
Diffstat (limited to 'drivers/infiniband/hw/mlx5/main.c')
-rw-r--r-- | drivers/infiniband/hw/mlx5/main.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/infiniband/hw/mlx5/main.c b/drivers/infiniband/hw/mlx5/main.c index ec737e2287fe..03c418ccbc98 100644 --- a/drivers/infiniband/hw/mlx5/main.c +++ b/drivers/infiniband/hw/mlx5/main.c | |||
@@ -844,6 +844,8 @@ static struct ib_ucontext *mlx5_ib_alloc_ucontext(struct ib_device *ibdev, | |||
844 | int err; | 844 | int err; |
845 | int i; | 845 | int i; |
846 | size_t reqlen; | 846 | size_t reqlen; |
847 | size_t min_req_v2 = offsetof(struct mlx5_ib_alloc_ucontext_req_v2, | ||
848 | max_cqe_version); | ||
847 | 849 | ||
848 | if (!dev->ib_active) | 850 | if (!dev->ib_active) |
849 | return ERR_PTR(-EAGAIN); | 851 | return ERR_PTR(-EAGAIN); |
@@ -854,7 +856,7 @@ static struct ib_ucontext *mlx5_ib_alloc_ucontext(struct ib_device *ibdev, | |||
854 | reqlen = udata->inlen - sizeof(struct ib_uverbs_cmd_hdr); | 856 | reqlen = udata->inlen - sizeof(struct ib_uverbs_cmd_hdr); |
855 | if (reqlen == sizeof(struct mlx5_ib_alloc_ucontext_req)) | 857 | if (reqlen == sizeof(struct mlx5_ib_alloc_ucontext_req)) |
856 | ver = 0; | 858 | ver = 0; |
857 | else if (reqlen >= sizeof(struct mlx5_ib_alloc_ucontext_req_v2)) | 859 | else if (reqlen >= min_req_v2) |
858 | ver = 2; | 860 | ver = 2; |
859 | else | 861 | else |
860 | return ERR_PTR(-EINVAL); | 862 | return ERR_PTR(-EINVAL); |
@@ -2214,7 +2216,9 @@ static void *mlx5_ib_add(struct mlx5_core_dev *mdev) | |||
2214 | (1ull << IB_USER_VERBS_CMD_CREATE_XSRQ) | | 2216 | (1ull << IB_USER_VERBS_CMD_CREATE_XSRQ) | |
2215 | (1ull << IB_USER_VERBS_CMD_OPEN_QP); | 2217 | (1ull << IB_USER_VERBS_CMD_OPEN_QP); |
2216 | dev->ib_dev.uverbs_ex_cmd_mask = | 2218 | dev->ib_dev.uverbs_ex_cmd_mask = |
2217 | (1ull << IB_USER_VERBS_EX_CMD_QUERY_DEVICE); | 2219 | (1ull << IB_USER_VERBS_EX_CMD_QUERY_DEVICE) | |
2220 | (1ull << IB_USER_VERBS_EX_CMD_CREATE_CQ) | | ||
2221 | (1ull << IB_USER_VERBS_EX_CMD_CREATE_QP); | ||
2218 | 2222 | ||
2219 | dev->ib_dev.query_device = mlx5_ib_query_device; | 2223 | dev->ib_dev.query_device = mlx5_ib_query_device; |
2220 | dev->ib_dev.query_port = mlx5_ib_query_port; | 2224 | dev->ib_dev.query_port = mlx5_ib_query_port; |