vhost: add vDPA resource cleanup callback
authorXueming Li <xuemingl@nvidia.com>
Thu, 27 Jan 2022 08:45:35 +0000 (16:45 +0800)
committerMaxime Coquelin <maxime.coquelin@redhat.com>
Thu, 10 Feb 2022 14:59:17 +0000 (15:59 +0100)
This patch adds vDPA device cleanup callback to release resources on
vhost user connection close.

Signed-off-by: Xueming Li <xuemingl@nvidia.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
lib/vhost/vdpa_driver.h
lib/vhost/vhost_user.c

index fc2d6ac..fddbd50 100644 (file)
@@ -34,6 +34,9 @@ struct rte_vdpa_dev_ops {
        /** Driver close the device (Mandatory) */
        int (*dev_close)(int vid);
 
+       /** Connection closed, clean up resources */
+       int (*dev_cleanup)(int vid);
+
        /** Enable/disable this vring (Mandatory) */
        int (*set_vring_state)(int vid, int vring, int state);
 
index 2e2417b..7a6fd87 100644 (file)
@@ -219,6 +219,12 @@ free_mem_region(struct virtio_net *dev)
 void
 vhost_backend_cleanup(struct virtio_net *dev)
 {
+       struct rte_vdpa_device *vdpa_dev;
+
+       vdpa_dev = dev->vdpa_dev;
+       if (vdpa_dev && vdpa_dev->ops->dev_cleanup != NULL)
+               vdpa_dev->ops->dev_cleanup(dev->vid);
+
        if (dev->mem) {
                free_mem_region(dev);
                rte_free(dev->mem);