• Stefano Garzarella's avatar
    vhost-vdpa: call vhost_vdpa_cleanup during the release · 037d4305
    Stefano Garzarella authored
    Before commit 3d569879 ("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: 3d569879 ("vhost-vdpa: introduce asid based IOTLB")
    Cc: gautam.dawar@xilinx.com
    Signed-off-by: default avatarStefano Garzarella <sgarzare@redhat.com>
    Message-Id: <20220622151407.51232-1-sgarzare@redhat.com>
    Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
    Tested-by: default avatarEugenio Pérez <eperezma@redhat.com>
    Acked-by: default avatarJason Wang <jasowang@redhat.com>
    037d4305
vdpa.c 31.7 KB