/Linux-v4.19/drivers/iommu/ |
D | iova.c | 30 static bool iova_rcache_insert(struct iova_domain *iovad, 33 static unsigned long iova_rcache_get(struct iova_domain *iovad, 36 static void init_iova_rcaches(struct iova_domain *iovad); 37 static void free_iova_rcaches(struct iova_domain *iovad); 38 static void fq_destroy_all_entries(struct iova_domain *iovad); 42 init_iova_domain(struct iova_domain *iovad, unsigned long granule, in init_iova_domain() argument 52 spin_lock_init(&iovad->iova_rbtree_lock); in init_iova_domain() 53 iovad->rbroot = RB_ROOT; in init_iova_domain() 54 iovad->cached_node = &iovad->anchor.node; in init_iova_domain() 55 iovad->cached32_node = &iovad->anchor.node; in init_iova_domain() [all …]
|
D | dma-iommu.c | 52 struct iova_domain iovad; member 63 return cookie->iovad.granule; in cookie_msi_granule() 152 if (cookie->type == IOMMU_DMA_IOVA_COOKIE && cookie->iovad.granule) in iommu_put_dma_cookie() 153 put_iova_domain(&cookie->iovad); in iommu_put_dma_cookie() 186 struct iova_domain *iovad = &cookie->iovad; in cookie_init_hw_msi_region() local 190 start -= iova_offset(iovad, start); in cookie_init_hw_msi_region() 191 num_pages = iova_align(iovad, end - start) >> iova_shift(iovad); in cookie_init_hw_msi_region() 202 start += iovad->granule; in cookie_init_hw_msi_region() 209 struct iova_domain *iovad) in iova_reserve_pci_windows() argument 219 lo = iova_pfn(iovad, window->res->start - window->offset); in iova_reserve_pci_windows() [all …]
|
D | intel-iommu.c | 1603 static void iommu_flush_iova(struct iova_domain *iovad) in iommu_flush_iova() argument 1608 domain = container_of(iovad, struct dmar_domain, iovad); in iommu_flush_iova() 1909 copy_reserved_iova(&reserved_iova_list, &domain->iovad); in domain_reserve_special_ranges() 1933 init_iova_domain(&domain->iovad, VTD_PAGE_SIZE, IOVA_START_PFN); in domain_init() 1935 err = init_iova_flush_queue(&domain->iovad, in domain_init() 1997 put_iova_domain(&domain->iovad); in domain_exit() 2678 if (!reserve_iova(&domain->iovad, dma_to_mm_pfn(first_vpfn), in iommu_domain_identity_map() 3518 iova_pfn = alloc_iova_fast(&domain->iovad, nrpages, in intel_alloc_iova() 3523 iova_pfn = alloc_iova_fast(&domain->iovad, nrpages, in intel_alloc_iova() 3678 free_iova_fast(&domain->iovad, iova_pfn, dma_to_mm_pfn(size)); in __intel_map_single() [all …]
|
D | amd_iommu.c | 117 static void iova_domain_flush_tlb(struct iova_domain *iovad); 127 struct iova_domain iovad; member 1562 pfn = alloc_iova_fast(&dma_dom->iovad, pages, in dma_ops_alloc_iova() 1566 pfn = alloc_iova_fast(&dma_dom->iovad, pages, in dma_ops_alloc_iova() 1579 free_iova_fast(&dma_dom->iovad, address, pages); in dma_ops_free_iova() 1750 static void iova_domain_flush_tlb(struct iova_domain *iovad) in iova_domain_flush_tlb() argument 1754 dom = container_of(iovad, struct dma_ops_domain, iovad); in iova_domain_flush_tlb() 1770 put_iova_domain(&dom->iovad); in dma_ops_domain_free() 1802 init_iova_domain(&dma_dom->iovad, PAGE_SIZE, IOVA_START_PFN); in dma_ops_domain_alloc() 1804 if (init_iova_flush_queue(&dma_dom->iovad, iova_domain_flush_tlb, NULL)) in dma_ops_domain_alloc() [all …]
|
/Linux-v4.19/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 | 406 struct iova_domain iovad; /* iova's that belong to this domain */ member
|
/Linux-v4.19/drivers/misc/mic/scif/ |
D | scif_rma.h | 102 struct iova_domain iovad; member
|
D | scif_epd.c | 107 put_iova_domain(&ep->rma_info.iovad); in scif_cleanup_zombie_epd()
|
D | scif_rma.c | 42 init_iova_domain(&rma->iovad, PAGE_SIZE, SCIF_IOVA_START_PFN); in scif_rma_ep_init() 1019 iova_ptr = reserve_iova(&ep->rma_info.iovad, page_index, in scif_get_window_offset() 1024 iova_ptr = alloc_iova(&ep->rma_info.iovad, num_pages, in scif_get_window_offset() 1047 free_iova(&ep->rma_info.iovad, offset >> PAGE_SHIFT); in scif_free_window_offset()
|