Home
last modified time | relevance | path

Searched refs:iovad (Results 1 – 9 of 9) sorted by relevance

/Linux-v4.19/drivers/iommu/
Diova.c30 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 …]
Ddma-iommu.c52 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 …]
Dintel-iommu.c1603 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 …]
Damd_iommu.c117 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/
Diova.h106 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 …]
Dintel-iommu.h406 struct iova_domain iovad; /* iova's that belong to this domain */ member
/Linux-v4.19/drivers/misc/mic/scif/
Dscif_rma.h102 struct iova_domain iovad; member
Dscif_epd.c107 put_iova_domain(&ep->rma_info.iovad); in scif_cleanup_zombie_epd()
Dscif_rma.c42 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()