net/mlx5: E-switch, remove special uplink ingress ACL handling
authorMark Bloch <mbloch@nvidia.com>
Mon, 29 Nov 2021 07:57:14 +0000 (07:57 +0000)
committerSaeed Mahameed <saeedm@nvidia.com>
Wed, 23 Feb 2022 23:21:58 +0000 (15:21 -0800)
As both uplinks set the same metadata there is no need to merge
the ACL handling of both into a single one.

Signed-off-by: Mark Bloch <mbloch@nvidia.com>
Reviewed-by: Maor Gottlieb <maorg@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c

index efaf3be..f65231e 100644 (file)
@@ -2378,60 +2378,6 @@ void esw_offloads_unload_rep(struct mlx5_eswitch *esw, u16 vport_num)
                mlx5_esw_offloads_devlink_port_unregister(esw, vport_num);
 }
 
-static int esw_set_uplink_slave_ingress_root(struct mlx5_core_dev *master,
-                                            struct mlx5_core_dev *slave)
-{
-       u32 in[MLX5_ST_SZ_DW(set_flow_table_root_in)]   = {};
-       u32 out[MLX5_ST_SZ_DW(set_flow_table_root_out)] = {};
-       struct mlx5_eswitch *esw;
-       struct mlx5_flow_root_namespace *root;
-       struct mlx5_flow_namespace *ns;
-       struct mlx5_vport *vport;
-       int err;
-
-       MLX5_SET(set_flow_table_root_in, in, opcode,
-                MLX5_CMD_OP_SET_FLOW_TABLE_ROOT);
-       MLX5_SET(set_flow_table_root_in, in, table_type, FS_FT_ESW_INGRESS_ACL);
-       MLX5_SET(set_flow_table_root_in, in, other_vport, 1);
-       MLX5_SET(set_flow_table_root_in, in, vport_number, MLX5_VPORT_UPLINK);
-
-       if (master) {
-               esw = master->priv.eswitch;
-               vport = mlx5_eswitch_get_vport(esw, MLX5_VPORT_UPLINK);
-               MLX5_SET(set_flow_table_root_in, in, table_of_other_vport, 1);
-               MLX5_SET(set_flow_table_root_in, in, table_vport_number,
-                        MLX5_VPORT_UPLINK);
-
-               ns = mlx5_get_flow_vport_acl_namespace(master,
-                                                      MLX5_FLOW_NAMESPACE_ESW_INGRESS,
-                                                      vport->index);
-               root = find_root(&ns->node);
-               mutex_lock(&root->chain_lock);
-
-               MLX5_SET(set_flow_table_root_in, in,
-                        table_eswitch_owner_vhca_id_valid, 1);
-               MLX5_SET(set_flow_table_root_in, in,
-                        table_eswitch_owner_vhca_id,
-                        MLX5_CAP_GEN(master, vhca_id));
-               MLX5_SET(set_flow_table_root_in, in, table_id,
-                        root->root_ft->id);
-       } else {
-               esw = slave->priv.eswitch;
-               vport = mlx5_eswitch_get_vport(esw, MLX5_VPORT_UPLINK);
-               ns = mlx5_get_flow_vport_acl_namespace(slave,
-                                                      MLX5_FLOW_NAMESPACE_ESW_INGRESS,
-                                                      vport->index);
-               root = find_root(&ns->node);
-               mutex_lock(&root->chain_lock);
-               MLX5_SET(set_flow_table_root_in, in, table_id, root->root_ft->id);
-       }
-
-       err = mlx5_cmd_exec(slave, in, sizeof(in), out, sizeof(out));
-       mutex_unlock(&root->chain_lock);
-
-       return err;
-}
-
 static int esw_set_slave_root_fdb(struct mlx5_core_dev *master,
                                  struct mlx5_core_dev *slave)
 {
@@ -2613,15 +2559,10 @@ int mlx5_eswitch_offloads_config_single_fdb(struct mlx5_eswitch *master_esw,
 {
        int err;
 
-       err = esw_set_uplink_slave_ingress_root(master_esw->dev,
-                                               slave_esw->dev);
-       if (err)
-               return -EINVAL;
-
        err = esw_set_slave_root_fdb(master_esw->dev,
                                     slave_esw->dev);
        if (err)
-               goto err_fdb;
+               return err;
 
        err = esw_set_master_egress_rule(master_esw->dev,
                                         slave_esw->dev);
@@ -2633,9 +2574,6 @@ int mlx5_eswitch_offloads_config_single_fdb(struct mlx5_eswitch *master_esw,
 err_acl:
        esw_set_slave_root_fdb(NULL, slave_esw->dev);
 
-err_fdb:
-       esw_set_uplink_slave_ingress_root(NULL, slave_esw->dev);
-
        return err;
 }
 
@@ -2644,7 +2582,6 @@ void mlx5_eswitch_offloads_destroy_single_fdb(struct mlx5_eswitch *master_esw,
 {
        esw_unset_master_egress_rule(master_esw->dev);
        esw_set_slave_root_fdb(NULL, slave_esw->dev);
-       esw_set_uplink_slave_ingress_root(NULL, slave_esw->dev);
 }
 
 #define ESW_OFFLOADS_DEVCOM_PAIR       (0)