From 620be7f27bf53eeb19c464b2f1a77572e73db559 Mon Sep 17 00:00:00 2001 From: Michael Baum Date: Tue, 19 Oct 2021 23:55:45 +0300 Subject: [PATCH] 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 Acked-by: Matan Azrad --- drivers/net/mlx5/windows/mlx5_os.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/drivers/net/mlx5/windows/mlx5_os.c b/drivers/net/mlx5/windows/mlx5_os.c index 4ecf018267..75a1f9a5af 100644 --- a/drivers/net/mlx5/windows/mlx5_os.c +++ b/drivers/net/mlx5/windows/mlx5_os.c @@ -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; } -- 2.20.1