net/mlx5e: Move counter creation call to alloc_flow_attr_counter()
authorRoi Dayan <roid@nvidia.com>
Sun, 10 Oct 2021 12:05:06 +0000 (15:05 +0300)
committerSaeed Mahameed <saeedm@nvidia.com>
Thu, 27 Jan 2022 20:37:31 +0000 (12:37 -0800)
Move shared code to alloc_flow_attr_counter() for reuse by the next patches.

Signed-off-by: Roi Dayan <roid@nvidia.com>
Reviewed-by: Oz Shlomo <ozsh@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c

index 6f34eda..978c799 100644 (file)
@@ -1038,6 +1038,21 @@ err_ft_get:
        return ERR_CAST(rule);
 }
 
+static int
+alloc_flow_attr_counter(struct mlx5_core_dev *counter_dev,
+                       struct mlx5_flow_attr *attr)
+
+{
+       struct mlx5_fc *counter;
+
+       counter = mlx5_fc_create(counter_dev, true);
+       if (IS_ERR(counter))
+               return PTR_ERR(counter);
+
+       attr->counter = counter;
+       return 0;
+}
+
 static int
 mlx5e_tc_add_nic_flow(struct mlx5e_priv *priv,
                      struct mlx5e_tc_flow *flow,
@@ -1046,7 +1061,6 @@ mlx5e_tc_add_nic_flow(struct mlx5e_priv *priv,
        struct mlx5e_tc_flow_parse_attr *parse_attr;
        struct mlx5_flow_attr *attr = flow->attr;
        struct mlx5_core_dev *dev = priv->mdev;
-       struct mlx5_fc *counter;
        int err;
 
        parse_attr = attr->parse_attr;
@@ -1058,11 +1072,9 @@ mlx5e_tc_add_nic_flow(struct mlx5e_priv *priv,
        }
 
        if (attr->action & MLX5_FLOW_CONTEXT_ACTION_COUNT) {
-               counter = mlx5_fc_create(dev, true);
-               if (IS_ERR(counter))
-                       return PTR_ERR(counter);
-
-               attr->counter = counter;
+               err = alloc_flow_attr_counter(dev, attr);
+               if (err)
+                       return err;
        }
 
        if (attr->action & MLX5_FLOW_CONTEXT_ACTION_MOD_HDR) {
@@ -1465,7 +1477,6 @@ mlx5e_tc_add_fdb_flow(struct mlx5e_priv *priv,
        struct mlx5_flow_attr *attr = flow->attr;
        struct mlx5_esw_flow_attr *esw_attr;
        bool vf_tun, encap_valid;
-       struct mlx5_fc *counter;
        u32 max_prio, max_chain;
        int err = 0;
 
@@ -1577,13 +1588,9 @@ mlx5e_tc_add_fdb_flow(struct mlx5e_priv *priv,
        }
 
        if (attr->action & MLX5_FLOW_CONTEXT_ACTION_COUNT) {
-               counter = mlx5_fc_create(esw_attr->counter_dev, true);
-               if (IS_ERR(counter)) {
-                       err = PTR_ERR(counter);
+               err = alloc_flow_attr_counter(esw_attr->counter_dev, attr);
+               if (err)
                        goto err_out;
-               }
-
-               attr->counter = counter;
        }
 
        /* we get here if one of the following takes place: