Commit bc0ad1a1 authored by Chiara Meiohas's avatar Chiara Meiohas Committed by Leon Romanovsky
Browse files

RDMA/mlx5: Move device async_ctx initialization



Move the async_ctx initialization from mlx5_mkey_cache_init() to
mlx5_ib_stage_init_init() since the async_ctx is used by both the MR
cache and DEVX.

Also add the corresponding cleanup in mlx5_ib_stage_init_cleanup() to
properly release the async_ctx resources.

Signed-off-by: default avatarChiara Meiohas <cmeiohas@nvidia.com>
Reviewed-by: default avatarMichael Guralnik <michaelgur@nvidia.com>
Signed-off-by: default avatarEdward Srouji <edwards@nvidia.com>
Link: https://patch.msgid.link/20260226-frmr_pools-v4-1-95360b54f15e@nvidia.com


Signed-off-by: default avatarLeon Romanovsky <leon@kernel.org>
parent 94ff7c59
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -4416,6 +4416,7 @@ static const struct uapi_definition mlx5_ib_defs[] = {

static void mlx5_ib_stage_init_cleanup(struct mlx5_ib_dev *dev)
{
	mlx5_cmd_cleanup_async_ctx(&dev->async_ctx);
	mlx5_ib_data_direct_cleanup(dev);
	mlx5_ib_cleanup_multiport_master(dev);
	WARN_ON(!xa_empty(&dev->odp_mkeys));
@@ -4485,6 +4486,8 @@ static int mlx5_ib_stage_init_init(struct mlx5_ib_dev *dev)
	if (err && err != -EOPNOTSUPP)
		goto err_dd;

	mlx5_cmd_init_async_ctx(mdev, &dev->async_ctx);

	return 0;
err_dd:
	mlx5_ib_data_direct_cleanup(dev);
+0 −2
Original line number Diff line number Diff line
@@ -978,7 +978,6 @@ int mlx5_mkey_cache_init(struct mlx5_ib_dev *dev)
		return -ENOMEM;
	}

	mlx5_cmd_init_async_ctx(dev->mdev, &dev->async_ctx);
	timer_setup(&dev->delay_timer, delay_time_func, 0);
	mlx5_mkey_cache_debugfs_init(dev);
	mutex_lock(&cache->rb_lock);
@@ -1040,7 +1039,6 @@ void mlx5_mkey_cache_cleanup(struct mlx5_ib_dev *dev)
	flush_workqueue(dev->cache.wq);

	mlx5_mkey_cache_debugfs_cleanup(dev);
	mlx5_cmd_cleanup_async_ctx(&dev->async_ctx);

	/* At this point all entries are disabled and have no concurrent work. */
	mlx5r_destroy_cache_entries(dev);