浏览代码

IB/mlx5: Fix XRC QP support after introducing extended atomic

Extended atomics are supported with RC and XRC QP types, but the commit
citied in the Fixes line added an unneeded check to
to_mlx5_access_flags. This broke XRC QPs.

The following ib_atomic_bw invocation over XRC reproduces the issue:
   ib_atomic_bw -d mlx5_1 --connection=XRC --atomic_type=FETCH_AND_ADD

It is safe to remove such checks because the QP type was already checked
in ib_modify_qp_is_ok(), which was previously called from
mlx5_ib_modify_qp.

Fixes: a60109dc9a95 ("IB/mlx5: Add support for extended atomic operations")
Signed-off-by: Yonatan Cohen <yonatanc@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Yonatan Cohen 6 年之前
父节点
当前提交
13f8d9c166
共有 1 个文件被更改,包括 1 次插入2 次删除
  1. 1 2
      drivers/infiniband/hw/mlx5/qp.c

+ 1 - 2
drivers/infiniband/hw/mlx5/qp.c

@@ -2633,8 +2633,7 @@ static int to_mlx5_access_flags(struct mlx5_ib_qp *qp,
 
 
 	if (access_flags & IB_ACCESS_REMOTE_READ)
 	if (access_flags & IB_ACCESS_REMOTE_READ)
 		*hw_access_flags |= MLX5_QP_BIT_RRE;
 		*hw_access_flags |= MLX5_QP_BIT_RRE;
-	if ((access_flags & IB_ACCESS_REMOTE_ATOMIC) &&
-	    qp->ibqp.qp_type == IB_QPT_RC) {
+	if (access_flags & IB_ACCESS_REMOTE_ATOMIC) {
 		int atomic_mode;
 		int atomic_mode;
 
 
 		atomic_mode = get_atomic_mode(dev, qp->ibqp.qp_type);
 		atomic_mode = get_atomic_mode(dev, qp->ibqp.qp_type);