net/mlx5: register memory event callback in Windows

In device initialization, the driver registers to free hugepages events.
When hugepage is released, this callback frees all its related MRs.

In Windows initialization, this callback is not registered what may
cause to use invalid memory.

This patch adds memory event callback registration in Windows
initialization.

Fixes: 980826dc6f0f ("net/mlx5: probe on Windows")
Cc: stable@dpdk.org

Signed-off-by: Michael Baum <michaelba@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
This commit is contained in:
Michael Baum 2021-10-19 23:55:45 +03:00 committed by Thomas Monjalon
parent a4975cd20d
commit 620be7f27b

View File

@ -122,8 +122,21 @@ error:
static int
mlx5_init_once(void)
{
struct mlx5_shared_data *sd;
if (mlx5_init_shared_data())
return -rte_errno;
sd = mlx5_shared_data;
rte_spinlock_lock(&sd->lock);
MLX5_ASSERT(sd);
if (!sd->init_done) {
LIST_INIT(&sd->mem_event_cb_list);
rte_rwlock_init(&sd->mem_event_rwlock);
rte_mem_event_callback_register("MLX5_MEM_EVENT_CB",
mlx5_mr_mem_event_cb, NULL);
sd->init_done = true;
}
rte_spinlock_unlock(&sd->lock);
return 0;
}