]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
net/mlx5: E-switch, Use helper function to load unload representor
authorParav Pandit <parav@nvidia.com>
Mon, 31 Aug 2020 18:18:59 +0000 (21:18 +0300)
committerSaeed Mahameed <saeedm@nvidia.com>
Thu, 1 Oct 2020 04:26:29 +0000 (21:26 -0700)
To register and unregister devlink ports when loading/unload
representors, refactor the code to helper functions.

Signed-off-by: Parav Pandit <parav@nvidia.com>
Reviewed-by: Roi Dayan <roid@nvidia.com>
Reviewed-by: Vu Pham <vuhuong@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c

index eea16a21fb0152dcc965a5bbe7b49e70c4973371..f021cb8e6ad4219625dcbe42635165bbdf370035 100644 (file)
@@ -1820,15 +1820,12 @@ static void __unload_reps_all_vport(struct mlx5_eswitch *esw, u8 rep_type)
        __esw_offloads_unload_rep(esw, rep, rep_type);
 }
 
-int esw_offloads_load_rep(struct mlx5_eswitch *esw, u16 vport_num)
+static int mlx5_esw_offloads_rep_load(struct mlx5_eswitch *esw, u16 vport_num)
 {
        struct mlx5_eswitch_rep *rep;
        int rep_type;
        int err;
 
-       if (esw->mode != MLX5_ESWITCH_OFFLOADS)
-               return 0;
-
        rep = mlx5_eswitch_get_rep(esw, vport_num);
        for (rep_type = 0; rep_type < NUM_REP_TYPES; rep_type++)
                if (atomic_cmpxchg(&rep->rep_data[rep_type].state,
@@ -1847,19 +1844,35 @@ err_reps:
        return err;
 }
 
-void esw_offloads_unload_rep(struct mlx5_eswitch *esw, u16 vport_num)
+static void mlx5_esw_offloads_rep_unload(struct mlx5_eswitch *esw, u16 vport_num)
 {
        struct mlx5_eswitch_rep *rep;
        int rep_type;
 
-       if (esw->mode != MLX5_ESWITCH_OFFLOADS)
-               return;
-
        rep = mlx5_eswitch_get_rep(esw, vport_num);
        for (rep_type = NUM_REP_TYPES - 1; rep_type >= 0; rep_type--)
                __esw_offloads_unload_rep(esw, rep, rep_type);
 }
 
+int esw_offloads_load_rep(struct mlx5_eswitch *esw, u16 vport_num)
+{
+       int err;
+
+       if (esw->mode != MLX5_ESWITCH_OFFLOADS)
+               return 0;
+
+       err = mlx5_esw_offloads_rep_load(esw, vport_num);
+       return err;
+}
+
+void esw_offloads_unload_rep(struct mlx5_eswitch *esw, u16 vport_num)
+{
+       if (esw->mode != MLX5_ESWITCH_OFFLOADS)
+               return;
+
+       mlx5_esw_offloads_rep_unload(esw, vport_num);
+}
+
 #define ESW_OFFLOADS_DEVCOM_PAIR       (0)
 #define ESW_OFFLOADS_DEVCOM_UNPAIR     (1)