mirror of
https://github.com/torvalds/linux.git
synced 2026-06-02 03:24:19 +02:00
net/mlx5: Move state lock taking into mlx5_sf_dealloc()
Instead of taking lock and calling mlx5_sf_dealloc(), move the lock taking into mlx5_sf_dealloc(). The other caller of mlx5_sf_dealloc() does not need it now, but will need it after a follow-up patch removing the table reference counting. Signed-off-by: Jiri Pirko <jiri@nvidia.com> Reviewed-by: Shay Drory <shayd@nvidia.com> Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
This commit is contained in:
parent
2284a48362
commit
9497036dfb
|
|
@ -341,6 +341,8 @@ int mlx5_devlink_sf_port_new(struct devlink *devlink,
|
|||
|
||||
static void mlx5_sf_dealloc(struct mlx5_sf_table *table, struct mlx5_sf *sf)
|
||||
{
|
||||
mutex_lock(&table->sf_state_lock);
|
||||
|
||||
mlx5_sf_function_id_erase(table, sf);
|
||||
|
||||
if (sf->hw_state == MLX5_VHCA_STATE_ALLOCATED) {
|
||||
|
|
@ -358,6 +360,8 @@ static void mlx5_sf_dealloc(struct mlx5_sf_table *table, struct mlx5_sf *sf)
|
|||
mlx5_sf_hw_table_sf_deferred_free(table->dev, sf->controller, sf->id);
|
||||
kfree(sf);
|
||||
}
|
||||
|
||||
mutex_unlock(&table->sf_state_lock);
|
||||
}
|
||||
|
||||
int mlx5_devlink_sf_port_del(struct devlink *devlink,
|
||||
|
|
@ -377,10 +381,7 @@ int mlx5_devlink_sf_port_del(struct devlink *devlink,
|
|||
}
|
||||
|
||||
mlx5_eswitch_unload_sf_vport(esw, sf->hw_fn_id);
|
||||
|
||||
mutex_lock(&table->sf_state_lock);
|
||||
mlx5_sf_dealloc(table, sf);
|
||||
mutex_unlock(&table->sf_state_lock);
|
||||
mlx5_sf_table_put(table);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user