• Cindy Lu's avatar
    vhost_vdpa: fix unmap process in no-batch mode · c82729e0
    Cindy Lu authored
    While using the vdpa device with vIOMMU enabled
    in the guest VM, when the vdpa device bind to vfio-pci and run testpmd
    then system will fail to unmap.
    The test process is
    Load guest VM --> attach to virtio driver--> bind to vfio-pci driver
    So the mapping process is
    1)batched mode map to normal MR
    2)batched mode unmapped the normal MR
    3)unmapped all the memory
    4)mapped to iommu MR
    
    This error happened in step 3). The iotlb was freed in step 2)
    and the function vhost_vdpa_process_iotlb_msg will return fail
    Which causes failure.
    
    To fix this, we will not remove the AS while the iotlb->nmaps is 0.
    This will free in the vhost_vdpa_clean
    
    Cc: stable@vger.kernel.org
    Fixes: aaca8373 ("vhost-vdpa: support ASID based IOTLB API")
    Signed-off-by: default avatarCindy Lu <lulu@redhat.com>
    Message-Id: <20230420151734.860168-1-lulu@redhat.com>
    Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
    c82729e0
vdpa.c 34.7 KB