Lines Matching refs:iova

387 	struct iova *iova[HIGH_WATER_MARK];  member
1649 struct iova *iova; in dmar_init_reserved_ranges() local
1659 iova = reserve_iova(&reserved_iova_list, IOVA_PFN(IOAPIC_RANGE_START), in dmar_init_reserved_ranges()
1661 if (!iova) { in dmar_init_reserved_ranges()
1674 iova = reserve_iova(&reserved_iova_list, in dmar_init_reserved_ranges()
1677 if (!iova) { in dmar_init_reserved_ranges()
2932 static struct iova *intel_alloc_iova(struct device *dev, in intel_alloc_iova()
2936 struct iova *iova = NULL; in intel_alloc_iova() local
2947 iova = alloc_iova(&domain->iovad, nrpages, in intel_alloc_iova()
2949 if (iova) in intel_alloc_iova()
2950 return iova; in intel_alloc_iova()
2952 iova = alloc_iova(&domain->iovad, nrpages, IOVA_PFN(dma_mask), 1); in intel_alloc_iova()
2953 if (unlikely(!iova)) { in intel_alloc_iova()
2959 return iova; in intel_alloc_iova()
3051 struct iova *iova; in __intel_map_single() local
3069 iova = intel_alloc_iova(dev, domain, dma_to_mm_pfn(size), dma_mask); in __intel_map_single()
3070 if (!iova) in __intel_map_single()
3088 ret = domain_pfn_mapping(domain, mm_to_dma_pfn(iova->pfn_lo), in __intel_map_single()
3095 iommu_flush_iotlb_psi(iommu, domain->id, mm_to_dma_pfn(iova->pfn_lo), size, 0, 1); in __intel_map_single()
3099 start_paddr = (phys_addr_t)iova->pfn_lo << PAGE_SHIFT; in __intel_map_single()
3104 if (iova) in __intel_map_single()
3105 __free_iova(&domain->iovad, iova); in __intel_map_single()
3141 struct iova *iova = deferred_flush[i].iova[j]; in flush_unmaps() local
3147 iova->pfn_lo, iova_size(iova), in flush_unmaps()
3150 mask = ilog2(mm_to_dma_pfn(iova_size(iova))); in flush_unmaps()
3152 (uint64_t)iova->pfn_lo << PAGE_SHIFT, mask); in flush_unmaps()
3154 __free_iova(&deferred_flush[i].domain[j]->iovad, iova); in flush_unmaps()
3173 static void add_unmap(struct dmar_domain *dom, struct iova *iova, struct page *freelist) in add_unmap() argument
3188 deferred_flush[iommu_id].iova[next] = iova; in add_unmap()
3204 struct iova *iova; in intel_unmap() local
3216 iova = find_iova(&domain->iovad, IOVA_PFN(dev_addr)); in intel_unmap()
3217 if (WARN_ONCE(!iova, "Driver unmaps unmatched page at PFN %llx\n", in intel_unmap()
3221 start_pfn = mm_to_dma_pfn(iova->pfn_lo); in intel_unmap()
3222 last_pfn = mm_to_dma_pfn(iova->pfn_hi + 1) - 1; in intel_unmap()
3233 __free_iova(&domain->iovad, iova); in intel_unmap()
3236 add_unmap(domain, iova, freelist); in intel_unmap()
3340 struct iova *iova = NULL; in intel_map_sg() local
3359 iova = intel_alloc_iova(dev, domain, dma_to_mm_pfn(size), in intel_map_sg()
3361 if (!iova) { in intel_map_sg()
3376 start_vpfn = mm_to_dma_pfn(iova->pfn_lo); in intel_map_sg()
3382 __free_iova(&domain->iovad, iova); in intel_map_sg()
4072 struct iova *iova; in intel_iommu_memory_notifier() local
4077 iova = find_iova(&si_domain->iovad, start_vpfn); in intel_iommu_memory_notifier()
4078 if (iova == NULL) { in intel_iommu_memory_notifier()
4084 iova = split_and_remove_iova(&si_domain->iovad, iova, in intel_iommu_memory_notifier()
4086 if (iova == NULL) { in intel_iommu_memory_notifier()
4092 freelist = domain_unmap(si_domain, iova->pfn_lo, in intel_iommu_memory_notifier()
4093 iova->pfn_hi); in intel_iommu_memory_notifier()
4098 iova->pfn_lo, iova_size(iova), in intel_iommu_memory_notifier()
4103 start_vpfn = iova->pfn_hi + 1; in intel_iommu_memory_notifier()
4104 free_iova_mem(iova); in intel_iommu_memory_notifier()
4474 unsigned long iova, phys_addr_t hpa, in intel_iommu_map() argument
4489 max_addr = iova + size; in intel_iommu_map()
4506 ret = domain_pfn_mapping(dmar_domain, iova >> VTD_PAGE_SHIFT, in intel_iommu_map()
4512 unsigned long iova, size_t size) in intel_iommu_unmap() argument
4523 if (!pfn_to_dma_pte(dmar_domain, iova >> VTD_PAGE_SHIFT, &level)) in intel_iommu_unmap()
4529 start_pfn = iova >> VTD_PAGE_SHIFT; in intel_iommu_unmap()
4530 last_pfn = (iova + size - 1) >> VTD_PAGE_SHIFT; in intel_iommu_unmap()
4553 if (dmar_domain->max_addr == iova + size) in intel_iommu_unmap()
4554 dmar_domain->max_addr = iova; in intel_iommu_unmap()
4560 dma_addr_t iova) in intel_iommu_iova_to_phys() argument
4567 pte = pfn_to_dma_pte(dmar_domain, iova >> VTD_PAGE_SHIFT, &level); in intel_iommu_iova_to_phys()