IB/mlx5: Fix scatter to CQE in DCT QP creation
When scatter to CQE is enabled on a DCT QP it corrupts the mailbox command
since it tried to treat it as as QP create mailbox command instead of a
DCT create command.
The corrupted mailbox command causes userspace to malfunction as the
device doesn't create the QP as expected.
A new mlx5 capability is exposed to user-space which ensures that it will
not enable the feature on DCT without this fix in the kernel.
Fixes: 5d6ff1babe
("IB/mlx5: Support scatter to CQE for DC transport type")
Signed-off-by: Guy Levi <guyle@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
This commit is contained in:

committed by
Jason Gunthorpe

parent
7c39f7f671
commit
7249c8ea22
@@ -1818,13 +1818,16 @@ static void configure_responder_scat_cqe(struct ib_qp_init_attr *init_attr,
|
||||
|
||||
rcqe_sz = mlx5_ib_get_cqe_size(init_attr->recv_cq);
|
||||
|
||||
if (rcqe_sz == 128) {
|
||||
MLX5_SET(qpc, qpc, cs_res, MLX5_RES_SCAT_DATA64_CQE);
|
||||
if (init_attr->qp_type == MLX5_IB_QPT_DCT) {
|
||||
if (rcqe_sz == 128)
|
||||
MLX5_SET(dctc, qpc, cs_res, MLX5_RES_SCAT_DATA64_CQE);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (init_attr->qp_type != MLX5_IB_QPT_DCT)
|
||||
MLX5_SET(qpc, qpc, cs_res, MLX5_RES_SCAT_DATA32_CQE);
|
||||
MLX5_SET(qpc, qpc, cs_res,
|
||||
rcqe_sz == 128 ? MLX5_RES_SCAT_DATA64_CQE :
|
||||
MLX5_RES_SCAT_DATA32_CQE);
|
||||
}
|
||||
|
||||
static void configure_requester_scat_cqe(struct mlx5_ib_dev *dev,
|
||||
|
Reference in New Issue
Block a user