net/mlx5: fix flow index type
[dpdk.git] / drivers / net / mlx5 / mlx5_flow.h
index e3a5030..afddcfc 100644 (file)
@@ -950,8 +950,12 @@ struct mlx5_flow_tunnel {
 
 /** PMD tunnel related context */
 struct mlx5_flow_tunnel_hub {
+       /* Tunnels list
+        * Access to the list MUST be MT protected
+        */
        LIST_HEAD(, mlx5_flow_tunnel) tunnels;
-       rte_spinlock_t sl;                      /* Tunnel list spinlock. */
+        /* protect access to the tunnels list */
+       rte_spinlock_t sl;
        struct mlx5_hlist *groups;              /** non tunnel groups */
 };
 
@@ -991,8 +995,13 @@ mlx5_tunnel_hub(struct rte_eth_dev *dev)
 static inline bool
 is_tunnel_offload_active(struct rte_eth_dev *dev)
 {
+#ifdef HAVE_IBV_FLOW_DV_SUPPORT
        struct mlx5_priv *priv = dev->data->dev_private;
        return !!priv->config.dv_miss_info;
+#else
+       RTE_SET_USED(dev);
+       return false;
+#endif
 }
 
 static inline bool
@@ -1092,11 +1101,14 @@ struct rte_flow_shared_action {
 
 /* Thread specific flow workspace intermediate data. */
 struct mlx5_flow_workspace {
+       /* If creating another flow in same thread, push new as stack. */
+       struct mlx5_flow_workspace *prev;
+       struct mlx5_flow_workspace *next;
+       uint32_t inuse; /* can't create new flow with current. */
        struct mlx5_flow flows[MLX5_NUM_MAX_DEV_FLOWS];
-       struct mlx5_flow_rss_desc rss_desc[2];
-       uint32_t rssq_num[2]; /* Allocated queue num in rss_desc. */
-       int flow_idx; /* Intermediate device flow index. */
-       int flow_nested_idx; /* Intermediate device flow index, nested. */
+       struct mlx5_flow_rss_desc rss_desc;
+       uint32_t rssq_num; /* Allocated queue num in rss_desc. */
+       uint32_t flow_idx; /* Intermediate device flow index. */
 };
 
 struct mlx5_flow_split_info {
@@ -1265,8 +1277,8 @@ tunnel_use_standard_attr_group_translate
 int mlx5_flow_group_to_table(struct rte_eth_dev *dev,
                             const struct mlx5_flow_tunnel *tunnel,
                             uint32_t group, uint32_t *table,
-                            struct flow_grp_info flags,
-                                struct rte_flow_error *error);
+                            const struct flow_grp_info *flags,
+                            struct rte_flow_error *error);
 uint64_t mlx5_flow_hashfields_adjust(struct mlx5_flow_rss_desc *rss_desc,
                                     int tunnel, uint64_t layer_types,
                                     uint64_t hash_fields);