|
@@ -270,8 +270,10 @@ static int sq_overhead(enum ib_qp_type qp_type)
|
|
|
/* fall through */
|
|
|
case IB_QPT_RC:
|
|
|
size += sizeof(struct mlx5_wqe_ctrl_seg) +
|
|
|
- sizeof(struct mlx5_wqe_atomic_seg) +
|
|
|
- sizeof(struct mlx5_wqe_raddr_seg);
|
|
|
+ max(sizeof(struct mlx5_wqe_atomic_seg) +
|
|
|
+ sizeof(struct mlx5_wqe_raddr_seg),
|
|
|
+ sizeof(struct mlx5_wqe_umr_ctrl_seg) +
|
|
|
+ sizeof(struct mlx5_mkey_seg));
|
|
|
break;
|
|
|
|
|
|
case IB_QPT_XRC_TGT:
|
|
@@ -279,9 +281,9 @@ static int sq_overhead(enum ib_qp_type qp_type)
|
|
|
|
|
|
case IB_QPT_UC:
|
|
|
size += sizeof(struct mlx5_wqe_ctrl_seg) +
|
|
|
- sizeof(struct mlx5_wqe_raddr_seg) +
|
|
|
- sizeof(struct mlx5_wqe_umr_ctrl_seg) +
|
|
|
- sizeof(struct mlx5_mkey_seg);
|
|
|
+ max(sizeof(struct mlx5_wqe_raddr_seg),
|
|
|
+ sizeof(struct mlx5_wqe_umr_ctrl_seg) +
|
|
|
+ sizeof(struct mlx5_mkey_seg));
|
|
|
break;
|
|
|
|
|
|
case IB_QPT_UD:
|