This patch fixes a bug in mlx5_flow_dv_discover_counter_offset_support() uncovered by a warning reported by MSVC:
../drivers/net/mlx5/mlx5_flow_dv.c(19636): warning C5287: operands are different enum types 'ibv_flow_attr_type' and 'ibv_flow_flags'; use an explicit cast to silence this warning IBV_FLOW_ATTR_FLAGS_EGRESS was incorrectly passed in to type field of mlx5dv_flow_matcher_attr struct, instead of flags field. As a result counter offset support discovery returned a false positive result on application with old rdma-core. Bugzilla ID: 1758 Fixes: 4fd5e1484887 ("net/mlx5: fix counter offset detection") Cc: suanmi...@nvidia.com Cc: sta...@dpdk.org Reported-by: Andre Muezerie <andre...@linux.microsoft.com> Signed-off-by: Dariusz Sosnowski <dsosnow...@nvidia.com> --- drivers/net/mlx5/mlx5_flow_dv.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c index 7b9e5018b8..4a6f9d63fb 100644 --- a/drivers/net/mlx5/mlx5_flow_dv.c +++ b/drivers/net/mlx5/mlx5_flow_dv.c @@ -19652,7 +19652,8 @@ mlx5_flow_dv_discover_counter_offset_support(struct rte_eth_dev *dev) .size = sizeof(value.buf), }; struct mlx5dv_flow_matcher_attr dv_attr = { - .type = IBV_FLOW_ATTR_NORMAL | IBV_FLOW_ATTR_FLAGS_EGRESS, + .type = IBV_FLOW_ATTR_NORMAL, + .flags = IBV_FLOW_ATTR_FLAGS_EGRESS, .priority = 0, .match_criteria_enable = 0, .match_mask = (void *)&mask, -- 2.39.5