sba_mark_invalid(9)
π
sba_mark_invalid(9) β from the Kernel API Manual β¨
πΈ NAME πΈ
sba_mark_invalid β invalidate one or more IO PDIR entries. That's the whole assignment, bestie. π
β¨ SYNOPSIS β¨
void sba_mark_invalid (struct ioc *ioc , dma_addr_t iova , size_t
byte_cnt );
okay so here's the signature β copy it exactly, no cap π«Ά
π ARGUMENTS π
iocβ the IO MMU structure which owns the pdir we are interested in. πiovaβ the IO Virtual Address mapped earlier. β¨byte_cntβ number of bytes this mapping covers. π
π¦ DESCRIPTION π¦
okay so the move is: mark the IO PDIR entry(ies) as Invalid and invalidate corresponding IO TLB entry too. The Ike PCOM (Purge Command Register) is there to purge stale entries in the IO TLB when unmapping entries. π§Ήβ¨
The PCOM register supports purging of multiple pages, with a minium of 1 page and a maximum of 2GB. Hardware requires the address be aligned to the size of the range being purged. The size of the range must be a power of 2. The "Cool perf optimization" in the allocation routine helps keep that true. π
π SEE ALSO π
also peep the Kernel file ./drivers/parisc/sba_iommu.c and these absolute icons: sba_dump_ranges(9), sba_dump_tlb(9), sba_dump_pdir_entry(9), sba_check_pdir(9), sba_dump_sg(9), sba_search_bitmap(9), sba_alloc_range(9), sba_free_range(9), sba_io_pdir_entry(9), sba_dma_supported(9), sba_map_single(9), sba_unmap_phys(9), sba_alloc(9), sba_free(9), sba_map_sg(9), sba_unmap_sg(9), sba_get_iommu(9), sba_directed_lmmio(9), sba_distributed_lmmio(9). πβ
that's the whole page, bestie π«Ά β from ./drivers/parisc, October 2026, for sba_mark_invalid(9) ππ
π¦ 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