vfio/iommufd: Support unmap all in one ioctl()
IOMMUFD kernel uAPI supports unmapping whole address space in one call with [iova, size] set to [0, UINT64_MAX], this can simplify iommufd_cdev_unmap() a bit. See iommufd_ioas_unmap() in kernel for details. Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Link: https://lore.kernel.org/qemu-devel/20251009040134.334251-3-zhenzhong.duan@intel.com Signed-off-by: Cédric Le Goater <clg@redhat.com>
This commit is contained in:
parent
962bcf0911
commit
b30823e561
1 changed files with 1 additions and 14 deletions
|
|
@ -62,21 +62,8 @@ static int iommufd_cdev_unmap(const VFIOContainer *bcontainer,
|
|||
{
|
||||
const VFIOIOMMUFDContainer *container = VFIO_IOMMU_IOMMUFD(bcontainer);
|
||||
|
||||
/* unmap in halves */
|
||||
if (unmap_all) {
|
||||
Int128 llsize = int128_rshift(int128_2_64(), 1);
|
||||
int ret;
|
||||
|
||||
ret = iommufd_backend_unmap_dma(container->be, container->ioas_id,
|
||||
0, int128_get64(llsize));
|
||||
|
||||
if (ret == 0) {
|
||||
ret = iommufd_backend_unmap_dma(container->be, container->ioas_id,
|
||||
int128_get64(llsize),
|
||||
int128_get64(llsize));
|
||||
}
|
||||
|
||||
return ret;
|
||||
size = UINT64_MAX;
|
||||
}
|
||||
|
||||
/* TODO: Handle dma_unmap_bitmap with iotlb args (migration) */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue