vdpa/mlx5: fix device unplug
authorMatan Azrad <matan@nvidia.com>
Thu, 13 May 2021 18:40:20 +0000 (21:40 +0300)
committerChenbo Xia <chenbo.xia@intel.com>
Tue, 18 May 2021 08:15:19 +0000 (10:15 +0200)
The vDPA PCI device unplug process 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 process via the remove operation.

Fixes: 95276abaaf0a ("vdpa/mlx5: introduce Mellanox vDPA driver")
Cc: stable@dpdk.org
Reported-by: Eli Britstein <elibr@nvidia.com>
Signed-off-by: Matan Azrad <matan@nvidia.com>
Tested-by: Eli Britstein <elibr@nvidia.com>
Acked-by: Xueming Li <xuemingl@nvidia.com>
Reviewed-by: Chenbo Xia <chenbo.xia@intel.com>
drivers/vdpa/mlx5/mlx5_vdpa.c

index 40db28b..e5e03e6 100644 (file)
@@ -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);