/* Frees the iommu virtually continuous memory area starting at @da, as obtained from 'iommu_vmalloc()'.  */
void iommu_vfree(struct iommu *obj, const u32 da)
/* Frees the iommu virtually continuous memory area starting at @da, as obtained from 'iommu_vmalloc()'.  */
void iommu_vfree(struct iommu *obj, const u32 da)
{
	struct sg_table *sgt;
	sgt = unmap_vm_area(obj, da, vfree, IOVMF_DISCONT | IOVMF_ALLOC);
	if (!sgt)
		dev_dbg(obj->dev, "%s: No sgt\n", __func__);
	sgtable_free(sgt);
}