The vDPA PCI device unplug proccess should release all the private
device resources and also to unregister the device.

The device unregistration was missed what remained the device data
invalid in the rte_vhost library.

Unregister the device in unplug proccess via the remove operation.

Fixes: 95276abaaf0a ("vdpa/mlx5: introduce Mellanox vDPA driver")
Cc: sta...@dpdk.org

Reported-by: Eli Britstein el...@nvidia.com
Signed-off-by: Matan Azrad ma...@nvidia.com
Tested-by: Eli Britstein el...@nvidia.com
Acked-by: Xueming Li <xuemi...@nvidia.com>
---
 drivers/vdpa/mlx5/mlx5_vdpa.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/vdpa/mlx5/mlx5_vdpa.c b/drivers/vdpa/mlx5/mlx5_vdpa.c
index 40db28b6db..e5e03e6582 100644
--- a/drivers/vdpa/mlx5/mlx5_vdpa.c
+++ b/drivers/vdpa/mlx5/mlx5_vdpa.c
@@ -787,6 +787,8 @@ mlx5_vdpa_pci_remove(struct rte_pci_device *pci_dev)
                        mlx5_glue->dv_free_var(priv->var);
                        priv->var = NULL;
                }
+               if (priv->vdev)
+                       rte_vdpa_unregister_device(priv->vdev);
                mlx5_glue->close_device(priv->ctx);
                pthread_mutex_destroy(&priv->vq_config_lock);
                rte_free(priv);
-- 
2.25.1

Reply via email to