IBV_RX_HASH_INNER should be referenced only when having tunnel support
in the Verbs headers.

Fixes: 80f2d0ed7ff9 ("net/mlx5: add hardware flow debug dump")
Cc: xuemi...@mellanox.com

Signed-off-by: Shahaf Shuler <shah...@mellanox.com>
---
 drivers/net/mlx5/mlx5_flow.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c
index ec6d00f21b..04ace3ee79 100644
--- a/drivers/net/mlx5/mlx5_flow.c
+++ b/drivers/net/mlx5/mlx5_flow.c
@@ -2188,7 +2188,12 @@ mlx5_flow_dump(struct rte_eth_dev *dev __rte_unused,
        uint16_t j;
        char buf[256];
        uint8_t off;
+       uint64_t extra_hash_fields = 0;
 
+#ifdef HAVE_IBV_DEVICE_TUNNEL_SUPPORT
+       if (flow->tunnel && flow->rss_conf.level > 1)
+               extra_hash_fields = (uint32_t)IBV_RX_HASH_INNER;
+#endif
        spec_ptr = (uintptr_t)(flow->frxq[hrxq_idx].ibv_attr + 1);
        for (j = 0, off = 0; j < flow->frxq[hrxq_idx].ibv_attr->num_of_specs;
             j++) {
@@ -2205,9 +2210,7 @@ mlx5_flow_dump(struct rte_eth_dev *dev __rte_unused,
                (void *)flow->frxq[hrxq_idx].hrxq,
                (void *)flow->frxq[hrxq_idx].hrxq->qp,
                (void *)flow->frxq[hrxq_idx].hrxq->ind_table,
-               flow->frxq[hrxq_idx].hash_fields |
-               (flow->tunnel &&
-                flow->rss_conf.level > 1 ? (uint32_t)IBV_RX_HASH_INNER : 0),
+               (flow->frxq[hrxq_idx].hash_fields | extra_hash_fields),
                flow->rss_conf.queue_num,
                flow->frxq[hrxq_idx].ibv_attr->num_of_specs,
                flow->frxq[hrxq_idx].ibv_attr->size,
-- 
2.12.0

Reply via email to