net/mlx5: fix RSS flow rule with L4 mismatch
[dpdk.git] / drivers / net / mlx5 / mlx5_flow_verbs.c
index 7b3d0b3..a36b8ad 100644 (file)
@@ -1821,8 +1821,9 @@ flow_verbs_translate(struct rte_eth_dev *dev,
                        flow_verbs_translate_item_tcp(dev_flow, items,
                                                      item_flags);
                        subpriority = MLX5_PRIORITY_MAP_L4;
-                       dev_flow->hash_fields |=
-                               mlx5_flow_hashfields_adjust
+                       if (dev_flow->hash_fields != 0)
+                               dev_flow->hash_fields |=
+                                       mlx5_flow_hashfields_adjust
                                        (rss_desc, tunnel, ETH_RSS_TCP,
                                         (IBV_RX_HASH_SRC_PORT_TCP |
                                          IBV_RX_HASH_DST_PORT_TCP));
@@ -1833,8 +1834,9 @@ flow_verbs_translate(struct rte_eth_dev *dev,
                        flow_verbs_translate_item_udp(dev_flow, items,
                                                      item_flags);
                        subpriority = MLX5_PRIORITY_MAP_L4;
-                       dev_flow->hash_fields |=
-                               mlx5_flow_hashfields_adjust
+                       if (dev_flow->hash_fields != 0)
+                               dev_flow->hash_fields |=
+                                       mlx5_flow_hashfields_adjust
                                        (rss_desc, tunnel, ETH_RSS_UDP,
                                         (IBV_RX_HASH_SRC_PORT_UDP |
                                          IBV_RX_HASH_DST_PORT_UDP));