Lines Matching refs:iova

464 	struct iova *iova[HIGH_WATER_MARK];  member
1805 struct iova *iova; in dmar_init_reserved_ranges() local
1815 iova = reserve_iova(&reserved_iova_list, IOVA_PFN(IOAPIC_RANGE_START), in dmar_init_reserved_ranges()
1817 if (!iova) { in dmar_init_reserved_ranges()
1830 iova = reserve_iova(&reserved_iova_list, in dmar_init_reserved_ranges()
1833 if (!iova) { in dmar_init_reserved_ranges()
3302 static struct iova *intel_alloc_iova(struct device *dev, in intel_alloc_iova()
3306 struct iova *iova = NULL; in intel_alloc_iova() local
3319 iova = alloc_iova(&domain->iovad, nrpages, in intel_alloc_iova()
3321 if (iova) in intel_alloc_iova()
3322 return iova; in intel_alloc_iova()
3324 iova = alloc_iova(&domain->iovad, nrpages, IOVA_PFN(dma_mask), 1); in intel_alloc_iova()
3325 if (unlikely(!iova)) { in intel_alloc_iova()
3331 return iova; in intel_alloc_iova()
3429 struct iova *iova; in __intel_map_single() local
3447 iova = intel_alloc_iova(dev, domain, dma_to_mm_pfn(size), dma_mask); in __intel_map_single()
3448 if (!iova) in __intel_map_single()
3466 ret = domain_pfn_mapping(domain, mm_to_dma_pfn(iova->pfn_lo), in __intel_map_single()
3474 mm_to_dma_pfn(iova->pfn_lo), in __intel_map_single()
3479 start_paddr = (phys_addr_t)iova->pfn_lo << PAGE_SHIFT; in __intel_map_single()
3484 if (iova) in __intel_map_single()
3485 __free_iova(&domain->iovad, iova); in __intel_map_single()
3521 struct iova *iova = deferred_flush[i].iova[j]; in flush_unmaps() local
3527 iova->pfn_lo, iova_size(iova), in flush_unmaps()
3530 mask = ilog2(mm_to_dma_pfn(iova_size(iova))); in flush_unmaps()
3532 (uint64_t)iova->pfn_lo << PAGE_SHIFT, mask); in flush_unmaps()
3534 __free_iova(&deferred_flush[i].domain[j]->iovad, iova); in flush_unmaps()
3553 static void add_unmap(struct dmar_domain *dom, struct iova *iova, struct page *freelist) in add_unmap() argument
3568 deferred_flush[iommu_id].iova[next] = iova; in add_unmap()
3584 struct iova *iova; in intel_unmap() local
3596 iova = find_iova(&domain->iovad, IOVA_PFN(dev_addr)); in intel_unmap()
3597 if (WARN_ONCE(!iova, "Driver unmaps unmatched page at PFN %llx\n", in intel_unmap()
3601 start_pfn = mm_to_dma_pfn(iova->pfn_lo); in intel_unmap()
3602 last_pfn = mm_to_dma_pfn(iova->pfn_hi + 1) - 1; in intel_unmap()
3613 __free_iova(&domain->iovad, iova); in intel_unmap()
3616 add_unmap(domain, iova, freelist); in intel_unmap()
3720 struct iova *iova = NULL; in intel_map_sg() local
3739 iova = intel_alloc_iova(dev, domain, dma_to_mm_pfn(size), in intel_map_sg()
3741 if (!iova) { in intel_map_sg()
3756 start_vpfn = mm_to_dma_pfn(iova->pfn_lo); in intel_map_sg()
3762 __free_iova(&domain->iovad, iova); in intel_map_sg()
4456 struct iova *iova; in intel_iommu_memory_notifier() local
4461 iova = find_iova(&si_domain->iovad, start_vpfn); in intel_iommu_memory_notifier()
4462 if (iova == NULL) { in intel_iommu_memory_notifier()
4468 iova = split_and_remove_iova(&si_domain->iovad, iova, in intel_iommu_memory_notifier()
4470 if (iova == NULL) { in intel_iommu_memory_notifier()
4476 freelist = domain_unmap(si_domain, iova->pfn_lo, in intel_iommu_memory_notifier()
4477 iova->pfn_hi); in intel_iommu_memory_notifier()
4482 iova->pfn_lo, iova_size(iova), in intel_iommu_memory_notifier()
4487 start_vpfn = iova->pfn_hi + 1; in intel_iommu_memory_notifier()
4488 free_iova_mem(iova); in intel_iommu_memory_notifier()
4855 unsigned long iova, phys_addr_t hpa, in intel_iommu_map() argument
4870 max_addr = iova + size; in intel_iommu_map()
4887 ret = domain_pfn_mapping(dmar_domain, iova >> VTD_PAGE_SHIFT, in intel_iommu_map()
4893 unsigned long iova, size_t size) in intel_iommu_unmap() argument
4904 BUG_ON(!pfn_to_dma_pte(dmar_domain, iova >> VTD_PAGE_SHIFT, &level)); in intel_iommu_unmap()
4909 start_pfn = iova >> VTD_PAGE_SHIFT; in intel_iommu_unmap()
4910 last_pfn = (iova + size - 1) >> VTD_PAGE_SHIFT; in intel_iommu_unmap()
4925 if (dmar_domain->max_addr == iova + size) in intel_iommu_unmap()
4926 dmar_domain->max_addr = iova; in intel_iommu_unmap()
4932 dma_addr_t iova) in intel_iommu_iova_to_phys() argument
4939 pte = pfn_to_dma_pte(dmar_domain, iova >> VTD_PAGE_SHIFT, &level); in intel_iommu_iova_to_phys()