This patch adds vDPA device cleanup callback to release resources on vhost user connection close.
Signed-off-by: Xueming Li <xuemi...@nvidia.com> --- lib/vhost/rte_vdpa_dev.h | 3 +++ lib/vhost/vhost_user.c | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/lib/vhost/rte_vdpa_dev.h b/lib/vhost/rte_vdpa_dev.h index b0f494815fa..2711004fe05 100644 --- a/lib/vhost/rte_vdpa_dev.h +++ b/lib/vhost/rte_vdpa_dev.h @@ -32,6 +32,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); diff --git a/lib/vhost/vhost_user.c b/lib/vhost/vhost_user.c index 5a894ca0cc7..032b621c86c 100644 --- a/lib/vhost/vhost_user.c +++ b/lib/vhost/vhost_user.c @@ -162,6 +162,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); -- 2.33.0