diff options
Diffstat (limited to 'drivers/infiniband/hw/mlx5/qp.c')
| -rw-r--r-- | drivers/infiniband/hw/mlx5/qp.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/drivers/infiniband/hw/mlx5/qp.c b/drivers/infiniband/hw/mlx5/qp.c index ae37fb9bf262..7dfe8a1c84cf 100644 --- a/drivers/infiniband/hw/mlx5/qp.c +++ b/drivers/infiniband/hw/mlx5/qp.c | |||
| @@ -216,7 +216,9 @@ static int sq_overhead(enum ib_qp_type qp_type) | |||
| 216 | 216 | ||
| 217 | case IB_QPT_UC: | 217 | case IB_QPT_UC: |
| 218 | size += sizeof(struct mlx5_wqe_ctrl_seg) + | 218 | size += sizeof(struct mlx5_wqe_ctrl_seg) + |
| 219 | sizeof(struct mlx5_wqe_raddr_seg); | 219 | sizeof(struct mlx5_wqe_raddr_seg) + |
| 220 | sizeof(struct mlx5_wqe_umr_ctrl_seg) + | ||
| 221 | sizeof(struct mlx5_mkey_seg); | ||
| 220 | break; | 222 | break; |
| 221 | 223 | ||
| 222 | case IB_QPT_UD: | 224 | case IB_QPT_UD: |
| @@ -428,11 +430,17 @@ static int alloc_uuar(struct mlx5_uuar_info *uuari, | |||
| 428 | break; | 430 | break; |
| 429 | 431 | ||
| 430 | case MLX5_IB_LATENCY_CLASS_MEDIUM: | 432 | case MLX5_IB_LATENCY_CLASS_MEDIUM: |
| 431 | uuarn = alloc_med_class_uuar(uuari); | 433 | if (uuari->ver < 2) |
| 434 | uuarn = -ENOMEM; | ||
| 435 | else | ||
| 436 | uuarn = alloc_med_class_uuar(uuari); | ||
| 432 | break; | 437 | break; |
| 433 | 438 | ||
| 434 | case MLX5_IB_LATENCY_CLASS_HIGH: | 439 | case MLX5_IB_LATENCY_CLASS_HIGH: |
| 435 | uuarn = alloc_high_class_uuar(uuari); | 440 | if (uuari->ver < 2) |
| 441 | uuarn = -ENOMEM; | ||
| 442 | else | ||
| 443 | uuarn = alloc_high_class_uuar(uuari); | ||
| 436 | break; | 444 | break; |
| 437 | 445 | ||
| 438 | case MLX5_IB_LATENCY_CLASS_FAST_PATH: | 446 | case MLX5_IB_LATENCY_CLASS_FAST_PATH: |
| @@ -657,8 +665,8 @@ static int create_kernel_qp(struct mlx5_ib_dev *dev, | |||
| 657 | int err; | 665 | int err; |
| 658 | 666 | ||
| 659 | uuari = &dev->mdev.priv.uuari; | 667 | uuari = &dev->mdev.priv.uuari; |
| 660 | if (init_attr->create_flags & IB_QP_CREATE_BLOCK_MULTICAST_LOOPBACK) | 668 | if (init_attr->create_flags) |
| 661 | qp->flags |= MLX5_IB_QP_BLOCK_MULTICAST_LOOPBACK; | 669 | return -EINVAL; |
| 662 | 670 | ||
| 663 | if (init_attr->qp_type == MLX5_IB_QPT_REG_UMR) | 671 | if (init_attr->qp_type == MLX5_IB_QPT_REG_UMR) |
| 664 | lc = MLX5_IB_LATENCY_CLASS_FAST_PATH; | 672 | lc = MLX5_IB_LATENCY_CLASS_FAST_PATH; |
