net/mlx5: E-Switch, Prepare for vport enable/disable refactor
authorBodong Wang <bodong@mellanox.com>
Fri, 30 Aug 2019 20:41:09 +0000 (15:41 -0500)
committerSaeed Mahameed <saeedm@mellanox.com>
Fri, 13 Mar 2020 23:26:05 +0000 (16:26 -0700)
Rename esw_apply_vport_config() to esw_vport_setup(), and add new
helper function esw_vport_cleanup() to make them symmetric.

Signed-off-by: Bodong Wang <bodong@mellanox.com>
Reviewed-by: Parav Pandit <parav@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
drivers/net/ethernet/mellanox/mlx5/core/eswitch.c

index deeedf211af06b44c0308ba4edfe1e59a8016f85..258141010b62d93c861e7fad4a2d3b99b3a2badf 100644 (file)
@@ -1670,8 +1670,7 @@ static void node_guid_gen_from_mac(u64 *node_guid, u8 mac[ETH_ALEN])
        ((u8 *)node_guid)[0] = mac[5];
 }
 
-static void esw_apply_vport_conf(struct mlx5_eswitch *esw,
-                                struct mlx5_vport *vport)
+static void esw_vport_setup(struct mlx5_eswitch *esw, struct mlx5_vport *vport)
 {
        u16 vport_num = vport->vport;
        int flags;
@@ -1698,6 +1697,18 @@ static void esw_apply_vport_conf(struct mlx5_eswitch *esw,
                               flags);
 }
 
+/* Don't cleanup vport->info, it's needed to restore vport configuration */
+static void esw_vport_cleanup(struct mlx5_eswitch *esw, struct mlx5_vport *vport)
+{
+       u16 vport_num = vport->vport;
+
+       if (!mlx5_esw_is_manager_vport(esw, vport_num))
+               mlx5_modify_vport_admin_state(esw->dev,
+                                             MLX5_VPORT_STATE_OP_MOD_ESW_VPORT,
+                                             vport_num, 1,
+                                             MLX5_VPORT_ADMIN_STATE_DOWN);
+}
+
 static int esw_vport_create_legacy_acl_tables(struct mlx5_eswitch *esw,
                                              struct mlx5_vport *vport)
 {
@@ -1794,7 +1805,7 @@ static int esw_enable_vport(struct mlx5_eswitch *esw, struct mlx5_vport *vport,
        esw_debug(esw->dev, "Enabling VPORT(%d)\n", vport_num);
 
        /* Restore old vport configuration */
-       esw_apply_vport_conf(esw, vport);
+       esw_vport_setup(esw, vport);
 
        ret = esw_vport_setup_acl(esw, vport);
        if (ret)
@@ -1845,14 +1856,7 @@ static void esw_disable_vport(struct mlx5_eswitch *esw,
        esw_vport_change_handle_locked(vport);
        vport->enabled_events = 0;
        esw_vport_disable_qos(esw, vport);
-
-       if (!mlx5_esw_is_manager_vport(esw, vport->vport) &&
-           esw->mode == MLX5_ESWITCH_LEGACY)
-               mlx5_modify_vport_admin_state(esw->dev,
-                                             MLX5_VPORT_STATE_OP_MOD_ESW_VPORT,
-                                             vport_num, 1,
-                                             MLX5_VPORT_ADMIN_STATE_DOWN);
-
+       esw_vport_cleanup(esw, vport);
        esw_vport_cleanup_acl(esw, vport);
        esw->enabled_vports--;