Commit ba3d85f0 authored by Jiri Pirko's avatar Jiri Pirko Committed by Saeed Mahameed
Browse files

net/mlx5: Call mlx5_esw_offloads_rep_load/unload() for uplink port directly



For uplink port, mlx5_esw_offloads_load/unload_rep() are currently
called. There are 2 check inside, which effectively make the
functions a simple wrappers of mlx5_esw_offloads_rep_load/unload()
for uplink port. So avoid one check and indirection and call
mlx5_esw_offloads_rep_load/unload() for uplink port directly.

Signed-off-by: default avatarJiri Pirko <jiri@nvidia.com>
Reviewed-by: default avatarShay Drory <shayd@nvidia.com>
Signed-off-by: default avatarSaeed Mahameed <saeedm@nvidia.com>
parent 6c8f7c43
Loading
Loading
Loading
Loading
+8 −12
Original line number Diff line number Diff line
@@ -2542,11 +2542,9 @@ int mlx5_esw_offloads_load_rep(struct mlx5_eswitch *esw, u16 vport_num)
	if (esw->mode != MLX5_ESWITCH_OFFLOADS)
		return 0;

	if (vport_num != MLX5_VPORT_UPLINK) {
	err = mlx5_esw_offloads_devlink_port_register(esw, vport_num);
	if (err)
		return err;
	}

	err = mlx5_esw_offloads_rep_load(esw, vport_num);
	if (err)
@@ -2554,7 +2552,6 @@ int mlx5_esw_offloads_load_rep(struct mlx5_eswitch *esw, u16 vport_num)
	return err;

load_err:
	if (vport_num != MLX5_VPORT_UPLINK)
	mlx5_esw_offloads_devlink_port_unregister(esw, vport_num);
	return err;
}
@@ -2566,7 +2563,6 @@ void mlx5_esw_offloads_unload_rep(struct mlx5_eswitch *esw, u16 vport_num)

	mlx5_esw_offloads_rep_unload(esw, vport_num);

	if (vport_num != MLX5_VPORT_UPLINK)
	mlx5_esw_offloads_devlink_port_unregister(esw, vport_num);
}

@@ -3471,7 +3467,7 @@ int esw_offloads_enable(struct mlx5_eswitch *esw)
			vport->info.link_state = MLX5_VPORT_ADMIN_STATE_DOWN;

	/* Uplink vport rep must load first. */
	err = mlx5_esw_offloads_load_rep(esw, MLX5_VPORT_UPLINK);
	err = mlx5_esw_offloads_rep_load(esw, MLX5_VPORT_UPLINK);
	if (err)
		goto err_uplink;

@@ -3482,7 +3478,7 @@ int esw_offloads_enable(struct mlx5_eswitch *esw)
	return 0;

err_vports:
	mlx5_esw_offloads_unload_rep(esw, MLX5_VPORT_UPLINK);
	mlx5_esw_offloads_rep_unload(esw, MLX5_VPORT_UPLINK);
err_uplink:
	esw_offloads_steering_cleanup(esw);
err_steering_init:
@@ -3520,7 +3516,7 @@ static int esw_offloads_stop(struct mlx5_eswitch *esw,
void esw_offloads_disable(struct mlx5_eswitch *esw)
{
	mlx5_eswitch_disable_pf_vf_vports(esw);
	mlx5_esw_offloads_unload_rep(esw, MLX5_VPORT_UPLINK);
	mlx5_esw_offloads_rep_unload(esw, MLX5_VPORT_UPLINK);
	esw_set_passing_vport_metadata(esw, false);
	esw_offloads_steering_cleanup(esw);
	mapping_destroy(esw->offloads.reg_c0_obj_pool);