Searched refs:iovad (Results 1 – 5 of 5) sorted by relevance
/Linux-v5.15/drivers/iommu/ |
D | iova.c | 18 static bool iova_rcache_insert(struct iova_domain *iovad, 21 static unsigned long iova_rcache_get(struct iova_domain *iovad, 24 static void init_iova_rcaches(struct iova_domain *iovad); 25 static void free_cpu_cached_iovas(unsigned int cpu, struct iova_domain *iovad); 26 static void free_iova_rcaches(struct iova_domain *iovad); 27 static void fq_destroy_all_entries(struct iova_domain *iovad); 32 struct iova_domain *iovad; in iova_cpuhp_dead() local 34 iovad = hlist_entry_safe(node, struct iova_domain, cpuhp_dead); in iova_cpuhp_dead() 36 free_cpu_cached_iovas(cpu, iovad); in iova_cpuhp_dead() 40 static void free_global_cached_iovas(struct iova_domain *iovad); [all …]
|
D | dma-iommu.c | 44 struct iova_domain iovad; member 82 return cookie->iovad.granule; in cookie_msi_granule() 165 if (cookie->type == IOMMU_DMA_IOVA_COOKIE && cookie->iovad.granule) in iommu_put_dma_cookie() 166 put_iova_domain(&cookie->iovad); in iommu_put_dma_cookie() 199 struct iova_domain *iovad = &cookie->iovad; in cookie_init_hw_msi_region() local 203 start -= iova_offset(iovad, start); in cookie_init_hw_msi_region() 204 num_pages = iova_align(iovad, end - start) >> iova_shift(iovad); in cookie_init_hw_msi_region() 215 start += iovad->granule; in cookie_init_hw_msi_region() 222 struct iova_domain *iovad) in iova_reserve_pci_windows() argument 233 lo = iova_pfn(iovad, window->res->start - window->offset); in iova_reserve_pci_windows() [all …]
|
/Linux-v5.15/include/linux/ |
D | iova.h | 106 static inline unsigned long iova_shift(struct iova_domain *iovad) in iova_shift() argument 108 return __ffs(iovad->granule); in iova_shift() 111 static inline unsigned long iova_mask(struct iova_domain *iovad) in iova_mask() argument 113 return iovad->granule - 1; in iova_mask() 116 static inline size_t iova_offset(struct iova_domain *iovad, dma_addr_t iova) in iova_offset() argument 118 return iova & iova_mask(iovad); in iova_offset() 121 static inline size_t iova_align(struct iova_domain *iovad, size_t size) in iova_align() argument 123 return ALIGN(size, iovad->granule); in iova_align() 126 static inline dma_addr_t iova_dma_addr(struct iova_domain *iovad, struct iova *iova) in iova_dma_addr() argument 128 return (dma_addr_t)iova->pfn_lo << iova_shift(iovad); in iova_dma_addr() [all …]
|
D | intel-iommu.h | 555 struct iova_domain iovad; /* iova's that belong to this domain */ member
|
/Linux-v5.15/drivers/vdpa/vdpa_user/ |
D | iova_domain.c | 288 vduse_domain_alloc_iova(struct iova_domain *iovad, in vduse_domain_alloc_iova() argument 291 unsigned long shift = iova_shift(iovad); in vduse_domain_alloc_iova() 292 unsigned long iova_len = iova_align(iovad, size) >> shift; in vduse_domain_alloc_iova() 303 iova_pfn = alloc_iova_fast(iovad, iova_len, limit >> shift, true); in vduse_domain_alloc_iova() 308 static void vduse_domain_free_iova(struct iova_domain *iovad, in vduse_domain_free_iova() argument 311 unsigned long shift = iova_shift(iovad); in vduse_domain_free_iova() 312 unsigned long iova_len = iova_align(iovad, size) >> shift; in vduse_domain_free_iova() 314 free_iova_fast(iovad, iova >> shift, iova_len); in vduse_domain_free_iova() 322 struct iova_domain *iovad = &domain->stream_iovad; in vduse_domain_map_page() local 325 dma_addr_t iova = vduse_domain_alloc_iova(iovad, size, limit); in vduse_domain_map_page() [all …]
|