Messages in this thread | | | From | Jason Wang <> | Date | Thu, 23 Jun 2022 11:54:50 +0800 | Subject | Re: [PATCH] vhost-vdpa: call vhost_vdpa_cleanup during the release |
| |
On Wed, Jun 22, 2022 at 11:14 PM Stefano Garzarella <sgarzare@redhat.com> wrote: > > Before commit 3d5698793897 ("vhost-vdpa: introduce asid based IOTLB") > we call vhost_vdpa_iotlb_free() during the release to clean all regions > mapped in the iotlb. > > That commit removed vhost_vdpa_iotlb_free() and added vhost_vdpa_cleanup() > to do some cleanup, including deleting all mappings, but we forgot to call > it in vhost_vdpa_release(). > > This causes that if an application does not remove all mappings explicitly > (or it crashes), the mappings remain in the iotlb and subsequent > applications may fail if they map the same addresses. > > Calling vhost_vdpa_cleanup() also fixes a memory leak since we are not > freeing `v->vdev.vqs` during the release from the same commit. > > Since vhost_vdpa_cleanup() calls vhost_dev_cleanup() we can remove its > call from vhost_vdpa_release(). > > Fixes: 3d5698793897 ("vhost-vdpa: introduce asid based IOTLB") > Cc: gautam.dawar@xilinx.com > Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
Acked-by: Jason Wang <jasowang@redhat.com>
> --- > drivers/vhost/vdpa.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/vhost/vdpa.c b/drivers/vhost/vdpa.c > index 5ad2596c6e8a..23dcbfdfa13b 100644 > --- a/drivers/vhost/vdpa.c > +++ b/drivers/vhost/vdpa.c > @@ -1209,7 +1209,7 @@ static int vhost_vdpa_release(struct inode *inode, struct file *filep) > vhost_dev_stop(&v->vdev); > vhost_vdpa_free_domain(v); > vhost_vdpa_config_put(v); > - vhost_dev_cleanup(&v->vdev); > + vhost_vdpa_cleanup(v); > mutex_unlock(&d->mutex); > > atomic_dec(&v->opened); > -- > 2.36.1 >
| |