net/mlx5e: TC, Move common flow_action checks into function
authorRoi Dayan <roid@nvidia.com>
Thu, 28 Oct 2021 12:50:49 +0000 (15:50 +0300)
committerSaeed Mahameed <saeedm@nvidia.com>
Fri, 3 Dec 2021 00:53:15 +0000 (16:53 -0800)
Remove duplicate checks on flow_action by using common function.

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

index 3c5e9efb9873672c544aef190183bd1db82c26fa..c7f1c93709cdfb1dbb4fd52d5e65958e993a2dd8 100644 (file)
@@ -3444,6 +3444,24 @@ actions_prepare_mod_hdr_actions(struct mlx5e_priv *priv,
        return 0;
 }
 
+static int
+flow_action_supported(struct flow_action *flow_action,
+                     struct netlink_ext_ack *extack)
+{
+       if (!flow_action_has_entries(flow_action)) {
+               NL_SET_ERR_MSG_MOD(extack, "Flow action doesn't have any entries");
+               return -EINVAL;
+       }
+
+       if (!flow_action_hw_stats_check(flow_action, extack,
+                                       FLOW_ACTION_HW_STATS_DELAYED_BIT)) {
+               NL_SET_ERR_MSG_MOD(extack, "Flow action HW stats type is not supported");
+               return -EOPNOTSUPP;
+       }
+
+       return 0;
+}
+
 static int
 parse_tc_nic_actions(struct mlx5e_priv *priv,
                     struct flow_action *flow_action,
@@ -3457,16 +3475,9 @@ parse_tc_nic_actions(struct mlx5e_priv *priv,
        struct mlx5_nic_flow_attr *nic_attr;
        int err, i;
 
-       if (!flow_action_has_entries(flow_action)) {
-               NL_SET_ERR_MSG_MOD(extack, "Flow action doesn't have any entries");
-               return -EINVAL;
-       }
-
-       if (!flow_action_hw_stats_check(flow_action, extack,
-                                       FLOW_ACTION_HW_STATS_DELAYED_BIT)) {
-               NL_SET_ERR_MSG_MOD(extack, "Flow action HW stats type is not supported");
-               return -EOPNOTSUPP;
-       }
+       err = flow_action_supported(flow_action, extack);
+       if (err)
+               return err;
 
        nic_attr = attr->nic_attr;
        nic_attr->flow_tag = MLX5_FS_DEFAULT_FLOW_TAG;
@@ -3883,16 +3894,9 @@ static int parse_tc_fdb_actions(struct mlx5e_priv *priv,
        bool ptype_host = false;
        bool mpls_push = false;
 
-       if (!flow_action_has_entries(flow_action)) {
-               NL_SET_ERR_MSG_MOD(extack, "Flow action doesn't have any entries");
-               return -EINVAL;
-       }
-
-       if (!flow_action_hw_stats_check(flow_action, extack,
-                                       FLOW_ACTION_HW_STATS_DELAYED_BIT)) {
-               NL_SET_ERR_MSG_MOD(extack, "Flow action HW stats type is not supported");
-               return -EOPNOTSUPP;
-       }
+       err = flow_action_supported(flow_action, extack);
+       if (err)
+               return err;
 
        esw_attr = attr->esw_attr;
        parse_attr = attr->parse_attr;