iommu_unmap_fast(9)
π iommu_unmap_fast β¨
Okay bestie, welcome to the Kernel API Manual π β this one's iommu_unmap_fast(9), and no cap, it's kind of a niche icon but she knows what she's doing.
πΈ NAME πΈ
iommu_unmap_fast β remove mappings from a range of IOVA without the IOTLB sync, periodt. π
β¨ SYNOPSIS β¨
size_t iommu_unmap_fast (struct iommu_domain *domain , unsigned long
iova , size_t size , struct iommu_iotlb_gather *iotlb_gather );
π¦ ARGUMENTS π¦
domainβ the domain you're messing with. your main character π«Άiovaβ the IO virtual address where the range starts, like, the beginning of the story β¨sizeβ length of the range starting fromiova. how much we're doing today πiotlb_gatherβ range info for a pending IOTLB flush. she's holding the deets for later π₯
π DESCRIPTION π
So iommu_unmap_fast will remove a translation that was created by iommu_map. literally undoing the thing π
Important vibe check: she can't subdivide a mapping created by iommu_map, so you should call her with IOVA ranges that match what was passed to iommu_map. The range can aggregate contiguous iommu_map calls β but only so long as no individual range is split. no splitting, bestie, that's the rule π
Basically, iommu_unmap_fast is the same as iommu_unmap but for callers who manage the IOTLB flushing externally to perform a batched sync. it's giving "I'll handle the follow-up, you just do the unmapping" β¨
π RETURN π
Number of bytes of IOVA unmapped. and like, iova + res will be the point where unmapping stopped β so you always know exactly where she left off π
π§ SEE ALSO π§
Kernel file ./drivers/iommu/iommu.c
iommu_device_register(9)iommu_insert_resv_region(9)iommu_group_alloc(9)iommu_group_get_iommudata(9)iommu_group_set_iommudata(9)iommu_group_set_name(9)iommu_group_add_device(9)iommu_group_remove_device(9)iommu_group_mutex_assert(9)iommu_group_for_each_dev(9)iommu_group_get(9)iommu_group_ref_get(9)iommu_group_put(9)iommu_group_id(9)device_iommu_capable(9)iommu_group_has_isolated_msi(9)iommu_set_fault_handler(9)iommu_paging_domain_alloc_flags(9)iommu_attach_device(9)iommu_get_domain_for_dev(9)iommu_driver_get_domain_for_dev(9)iommu_attach_group(9)iommu_unmap(9)report_iommu_fault(9)iommu_get_resv_regions(9)iommu_put_resv_regions(9)iommu_setup_default_domain(9)iommu_device_use_default_domain(9)iommu_device_unuse_default_domain(9)iommu_group_claim_dma_owner(9)iommu_device_claim_dma_owner(9)iommu_group_release_dma_owner(9)iommu_device_release_dma_owner(9)iommu_group_dma_owner_claimed(9)iommu_replace_device_pasid(9)iommu_attach_handle_get(9)iommu_attach_group_handle(9)iommu_detach_group_handle(9)iommu_replace_group_handle(9)pci_dev_reset_iommu_prepare(9)pci_dev_reset_iommu_done(9)iommu_dma_prepare_msi(9)
and that's the whole page, bestie β mwah π this lil number lives over in ./drivers/iommu and she's dated October 2026, so like, mark your calendar ποΈπ slay, go unmap responsibly β¨π¦π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms