iommu_pages_...t_incoherent(9)
okay so bestie, welcome to the iommu_pages_...t_incoherent(9) page from the Kernel API Manual β¨ This one is lowkey niche, but itβs giving very specific kernel-maintenance main character energy, and weβre obsessed.
π NAME π
iommu_pages_start_incoherent β Setup the page for cache incoherent operation. Periodt π
β¨ SYNOPSIS β¨
The whole glow-up in code form:
int iommu_pages_start_incoherent (void *virt , struct device *dma_dev );
π¦ ARGUMENTS π¦
virtβ The page to setup. Like, the actual page getting the setup treatment πdma_devβ The iommu device. Yes bestie, theiommudevice, exactly as written.
πΈ DESCRIPTION πΈ
For incoherent memory this will use the DMA API to manage the cache flushing on some arches. Fr fr, thatβs the move.
This is a lot of complexity compared to just calling arch_sync_dma_for_device, but it is what the existing ARM iommu drivers have been doing. The way that existing-driver behavior just keeps on keeping on? iconic, honestly.
The DMA API requires keeping track of the DMA map and freeing it when required. This keeps track of the dma map inside the ioptdesc so that error paths are simple for the caller. Cute error paths = happy caller π«Ά
π SEE ALSO π
Go peek at these, iykyk:
- Kernel file
./drivers/iommu/iommu-pages.c iommu_alloc_pages_node_sz(9)iommu_free_pages(9)iommu_put_pages_list(9)iommu_pages_start_incoherent_list(9)iommu_pages_stop_incoherent_list(9)iommu_pages_free_incoherent(9)
Sign-off cuteness: source/version ./drivers/iommu, date October 2026, manual iommu_pages_...t_incoherent(9) β bye bestie, slay 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