iommu_pages_...t_incoherent(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

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, the iommu device, 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:


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