Skip to content

Commit c7dd225

Browse files
kliteynSaeed Mahameed
authored andcommitted
net/mlx5: DR, Check force-loopback RC QP capability independently from RoCE
SW Steering uses RC QP for writing STEs to ICM. This writingis done in LB (loopback), and FL (force-loopback) QP is preferred for performance. FL is available when RoCE is enabled or disabled based on RoCE caps. This patch adds reading of FL capability from HCA caps in addition to the existing reading from RoCE caps, thus fixing the case where we didn't have loopback enabled when RoCE was disabled. Fixes: 7304d60 ("net/mlx5: DR, Add support for force-loopback QP") Signed-off-by: Itamar Gozlan <igozlan@nvidia.com> Signed-off-by: Yevgeny Kliteynik <kliteyn@nvidia.com> Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
1 parent 1e5daf5 commit c7dd225

2 files changed

Lines changed: 6 additions & 2 deletions

File tree

drivers/net/ethernet/mellanox/mlx5/core/steering/dr_cmd.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,14 +117,16 @@ int mlx5dr_cmd_query_device(struct mlx5_core_dev *mdev,
117117
caps->gvmi = MLX5_CAP_GEN(mdev, vhca_id);
118118
caps->flex_protocols = MLX5_CAP_GEN(mdev, flex_parser_protocols);
119119
caps->sw_format_ver = MLX5_CAP_GEN(mdev, steering_format_version);
120+
caps->roce_caps.fl_rc_qp_when_roce_disabled =
121+
MLX5_CAP_GEN(mdev, fl_rc_qp_when_roce_disabled);
120122

121123
if (MLX5_CAP_GEN(mdev, roce)) {
122124
err = dr_cmd_query_nic_vport_roce_en(mdev, 0, &roce_en);
123125
if (err)
124126
return err;
125127

126128
caps->roce_caps.roce_en = roce_en;
127-
caps->roce_caps.fl_rc_qp_when_roce_disabled =
129+
caps->roce_caps.fl_rc_qp_when_roce_disabled |=
128130
MLX5_CAP_ROCE(mdev, fl_rc_qp_when_roce_disabled);
129131
caps->roce_caps.fl_rc_qp_when_roce_enabled =
130132
MLX5_CAP_ROCE(mdev, fl_rc_qp_when_roce_enabled);

include/linux/mlx5/mlx5_ifc.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1705,7 +1705,9 @@ struct mlx5_ifc_cmd_hca_cap_bits {
17051705
u8 rc[0x1];
17061706

17071707
u8 uar_4k[0x1];
1708-
u8 reserved_at_241[0x9];
1708+
u8 reserved_at_241[0x7];
1709+
u8 fl_rc_qp_when_roce_disabled[0x1];
1710+
u8 regexp_params[0x1];
17091711
u8 uar_sz[0x6];
17101712
u8 port_selection_cap[0x1];
17111713
u8 reserved_at_248[0x1];

0 commit comments

Comments
 (0)