Lines Matching refs:domain

377 #define for_each_domain_iommu(idx, domain)			\  argument
379 if (domain->iommu_refcnt[idx])
412 struct iommu_domain domain; /* generic domain data structure for member
431 struct dmar_domain *domain; /* pointer to domain */ member
465 struct dmar_domain *domain[HIGH_WATER_MARK]; member
480 static void domain_exit(struct dmar_domain *domain);
481 static void domain_remove_dev_info(struct dmar_domain *domain);
482 static void dmar_remove_one_dev_info(struct dmar_domain *domain,
487 static int domain_detach_iommu(struct dmar_domain *domain,
567 return container_of(dom, struct dmar_domain, domain); in to_dmar_domain()
628 struct dmar_domain *domain) in set_iommu_domain() argument
642 domains[did & 0xff] = domain; in set_iommu_domain()
681 static inline int domain_type_is_vm(struct dmar_domain *domain) in domain_type_is_vm() argument
683 return domain->flags & DOMAIN_FLAG_VIRTUAL_MACHINE; in domain_type_is_vm()
686 static inline int domain_type_is_si(struct dmar_domain *domain) in domain_type_is_si() argument
688 return domain->flags & DOMAIN_FLAG_STATIC_IDENTITY; in domain_type_is_si()
691 static inline int domain_type_is_vm_or_si(struct dmar_domain *domain) in domain_type_is_vm_or_si() argument
693 return domain->flags & (DOMAIN_FLAG_VIRTUAL_MACHINE | in domain_type_is_vm_or_si()
697 static inline int domain_pfn_supported(struct dmar_domain *domain, in domain_pfn_supported() argument
700 int addr_width = agaw_to_width(domain->agaw) - VTD_PAGE_SHIFT; in domain_pfn_supported()
739 static struct intel_iommu *domain_get_iommu(struct dmar_domain *domain) in domain_get_iommu() argument
744 BUG_ON(domain_type_is_vm_or_si(domain)); in domain_get_iommu()
745 for_each_domain_iommu(iommu_id, domain) in domain_get_iommu()
754 static void domain_update_iommu_coherency(struct dmar_domain *domain) in domain_update_iommu_coherency() argument
761 domain->iommu_coherency = 1; in domain_update_iommu_coherency()
763 for_each_domain_iommu(i, domain) { in domain_update_iommu_coherency()
766 domain->iommu_coherency = 0; in domain_update_iommu_coherency()
777 domain->iommu_coherency = 0; in domain_update_iommu_coherency()
829 static void domain_update_iommu_cap(struct dmar_domain *domain) in domain_update_iommu_cap() argument
831 domain_update_iommu_coherency(domain); in domain_update_iommu_cap()
832 domain->iommu_snooping = domain_update_iommu_snooping(NULL); in domain_update_iommu_cap()
833 domain->iommu_superpage = domain_update_iommu_superpage(NULL); in domain_update_iommu_cap()
930 static void domain_flush_cache(struct dmar_domain *domain, in domain_flush_cache() argument
933 if (!domain->iommu_coherency) in domain_flush_cache()
994 static struct dma_pte *pfn_to_dma_pte(struct dmar_domain *domain, in pfn_to_dma_pte() argument
998 int level = agaw_to_level(domain->agaw); in pfn_to_dma_pte()
1001 BUG_ON(!domain->pgd); in pfn_to_dma_pte()
1003 if (!domain_pfn_supported(domain, pfn)) in pfn_to_dma_pte()
1007 parent = domain->pgd; in pfn_to_dma_pte()
1022 tmp_page = alloc_pgtable_page(domain->nid); in pfn_to_dma_pte()
1027 domain_flush_cache(domain, tmp_page, VTD_PAGE_SIZE); in pfn_to_dma_pte()
1033 domain_flush_cache(domain, pte, sizeof(*pte)); in pfn_to_dma_pte()
1050 static struct dma_pte *dma_pfn_level_pte(struct dmar_domain *domain, in dma_pfn_level_pte() argument
1055 int total = agaw_to_level(domain->agaw); in dma_pfn_level_pte()
1058 parent = domain->pgd; in dma_pfn_level_pte()
1082 static void dma_pte_clear_range(struct dmar_domain *domain, in dma_pte_clear_range() argument
1089 BUG_ON(!domain_pfn_supported(domain, start_pfn)); in dma_pte_clear_range()
1090 BUG_ON(!domain_pfn_supported(domain, last_pfn)); in dma_pte_clear_range()
1096 first_pte = pte = dma_pfn_level_pte(domain, start_pfn, 1, &large_page); in dma_pte_clear_range()
1107 domain_flush_cache(domain, first_pte, in dma_pte_clear_range()
1113 static void dma_pte_free_level(struct dmar_domain *domain, int level, in dma_pte_free_level() argument
1131 dma_pte_free_level(domain, level - 1, level_pte, in dma_pte_free_level()
1138 domain_flush_cache(domain, pte, sizeof(*pte)); in dma_pte_free_level()
1147 static void dma_pte_free_pagetable(struct dmar_domain *domain, in dma_pte_free_pagetable() argument
1151 BUG_ON(!domain_pfn_supported(domain, start_pfn)); in dma_pte_free_pagetable()
1152 BUG_ON(!domain_pfn_supported(domain, last_pfn)); in dma_pte_free_pagetable()
1155 dma_pte_clear_range(domain, start_pfn, last_pfn); in dma_pte_free_pagetable()
1158 dma_pte_free_level(domain, agaw_to_level(domain->agaw), in dma_pte_free_pagetable()
1159 domain->pgd, 0, start_pfn, last_pfn); in dma_pte_free_pagetable()
1162 if (start_pfn == 0 && last_pfn == DOMAIN_MAX_PFN(domain->gaw)) { in dma_pte_free_pagetable()
1163 free_pgtable_page(domain->pgd); in dma_pte_free_pagetable()
1164 domain->pgd = NULL; in dma_pte_free_pagetable()
1174 static struct page *dma_pte_list_pagetables(struct dmar_domain *domain, in dma_pte_list_pagetables() argument
1190 freelist = dma_pte_list_pagetables(domain, level - 1, in dma_pte_list_pagetables()
1198 static struct page *dma_pte_clear_level(struct dmar_domain *domain, int level, in dma_pte_clear_level() argument
1223 freelist = dma_pte_list_pagetables(domain, level - 1, pte, freelist); in dma_pte_clear_level()
1231 freelist = dma_pte_clear_level(domain, level - 1, in dma_pte_clear_level()
1241 domain_flush_cache(domain, first_pte, in dma_pte_clear_level()
1250 static struct page *domain_unmap(struct dmar_domain *domain, in domain_unmap() argument
1256 BUG_ON(!domain_pfn_supported(domain, start_pfn)); in domain_unmap()
1257 BUG_ON(!domain_pfn_supported(domain, last_pfn)); in domain_unmap()
1261 freelist = dma_pte_clear_level(domain, agaw_to_level(domain->agaw), in domain_unmap()
1262 domain->pgd, 0, start_pfn, last_pfn, NULL); in domain_unmap()
1265 if (start_pfn == 0 && last_pfn == DOMAIN_MAX_PFN(domain->gaw)) { in domain_unmap()
1266 struct page *pgd_page = virt_to_page(domain->pgd); in domain_unmap()
1270 domain->pgd = NULL; in domain_unmap()
1440 iommu_support_dev_iotlb (struct dmar_domain *domain, struct intel_iommu *iommu, in iommu_support_dev_iotlb() argument
1450 list_for_each_entry(info, &domain->devices, link) in iommu_support_dev_iotlb()
1513 static void iommu_flush_dev_iotlb(struct dmar_domain *domain, in iommu_flush_dev_iotlb() argument
1521 list_for_each_entry(info, &domain->devices, link) { in iommu_flush_dev_iotlb()
1533 struct dmar_domain *domain, in iommu_flush_iotlb_psi() argument
1539 u16 did = domain->iommu_did[iommu->seq_id]; in iommu_flush_iotlb_psi()
1677 struct dmar_domain *domain; in disable_dmar_iommu() local
1682 if (!info->dev || !info->domain) in disable_dmar_iommu()
1685 domain = info->domain; in disable_dmar_iommu()
1687 dmar_remove_one_dev_info(domain, info->dev); in disable_dmar_iommu()
1689 if (!domain_type_is_vm_or_si(domain)) in disable_dmar_iommu()
1690 domain_exit(domain); in disable_dmar_iommu()
1728 struct dmar_domain *domain; in alloc_domain() local
1730 domain = alloc_domain_mem(); in alloc_domain()
1731 if (!domain) in alloc_domain()
1734 memset(domain, 0, sizeof(*domain)); in alloc_domain()
1735 domain->nid = -1; in alloc_domain()
1736 domain->flags = flags; in alloc_domain()
1737 INIT_LIST_HEAD(&domain->devices); in alloc_domain()
1739 return domain; in alloc_domain()
1743 static int domain_attach_iommu(struct dmar_domain *domain, in domain_attach_iommu() argument
1752 domain->iommu_refcnt[iommu->seq_id] += 1; in domain_attach_iommu()
1753 domain->iommu_count += 1; in domain_attach_iommu()
1754 if (domain->iommu_refcnt[iommu->seq_id] == 1) { in domain_attach_iommu()
1760 domain->iommu_refcnt[iommu->seq_id] -= 1; in domain_attach_iommu()
1761 domain->iommu_count -= 1; in domain_attach_iommu()
1766 set_iommu_domain(iommu, num, domain); in domain_attach_iommu()
1768 domain->iommu_did[iommu->seq_id] = num; in domain_attach_iommu()
1769 domain->nid = iommu->node; in domain_attach_iommu()
1771 domain_update_iommu_cap(domain); in domain_attach_iommu()
1777 static int domain_detach_iommu(struct dmar_domain *domain, in domain_detach_iommu() argument
1785 domain->iommu_refcnt[iommu->seq_id] -= 1; in domain_detach_iommu()
1786 count = --domain->iommu_count; in domain_detach_iommu()
1787 if (domain->iommu_refcnt[iommu->seq_id] == 0) { in domain_detach_iommu()
1788 num = domain->iommu_did[iommu->seq_id]; in domain_detach_iommu()
1792 domain_update_iommu_cap(domain); in domain_detach_iommu()
1793 domain->iommu_did[iommu->seq_id] = 0; in domain_detach_iommu()
1842 static void domain_reserve_special_ranges(struct dmar_domain *domain) in domain_reserve_special_ranges() argument
1844 copy_reserved_iova(&reserved_iova_list, &domain->iovad); in domain_reserve_special_ranges()
1861 static int domain_init(struct dmar_domain *domain, struct intel_iommu *iommu, in domain_init() argument
1867 init_iova_domain(&domain->iovad, VTD_PAGE_SIZE, IOVA_START_PFN, in domain_init()
1869 domain_reserve_special_ranges(domain); in domain_init()
1874 domain->gaw = guest_width; in domain_init()
1885 domain->agaw = agaw; in domain_init()
1888 domain->iommu_coherency = 1; in domain_init()
1890 domain->iommu_coherency = 0; in domain_init()
1893 domain->iommu_snooping = 1; in domain_init()
1895 domain->iommu_snooping = 0; in domain_init()
1898 domain->iommu_superpage = fls(cap_super_page_val(iommu->cap)); in domain_init()
1900 domain->iommu_superpage = 0; in domain_init()
1902 domain->nid = iommu->node; in domain_init()
1905 domain->pgd = (struct dma_pte *)alloc_pgtable_page(domain->nid); in domain_init()
1906 if (!domain->pgd) in domain_init()
1908 __iommu_flush_cache(iommu, domain->pgd, PAGE_SIZE); in domain_init()
1912 static void domain_exit(struct dmar_domain *domain) in domain_exit() argument
1917 if (!domain) in domain_exit()
1926 domain_remove_dev_info(domain); in domain_exit()
1930 put_iova_domain(&domain->iovad); in domain_exit()
1932 freelist = domain_unmap(domain, 0, DOMAIN_MAX_PFN(domain->gaw)); in domain_exit()
1936 free_domain_mem(domain); in domain_exit()
1939 static int domain_context_mapping_one(struct dmar_domain *domain, in domain_context_mapping_one() argument
1943 u16 did = domain->iommu_did[iommu->seq_id]; in domain_context_mapping_one()
1953 if (hw_pass_through && domain_type_is_si(domain)) in domain_context_mapping_one()
1959 BUG_ON(!domain->pgd); in domain_context_mapping_one()
1973 pgd = domain->pgd; in domain_context_mapping_one()
1983 for (agaw = domain->agaw; agaw != iommu->agaw; agaw--) { in domain_context_mapping_one()
1990 info = iommu_support_dev_iotlb(domain, iommu, bus, devfn); in domain_context_mapping_one()
2010 domain_flush_cache(domain, context, sizeof(*context)); in domain_context_mapping_one()
2039 struct dmar_domain *domain; member
2048 return domain_context_mapping_one(data->domain, data->iommu, in domain_context_mapping_cb()
2053 domain_context_mapping(struct dmar_domain *domain, struct device *dev) in domain_context_mapping() argument
2064 return domain_context_mapping_one(domain, iommu, bus, devfn); in domain_context_mapping()
2066 data.domain = domain; in domain_context_mapping()
2106 static inline int hardware_largepage_caps(struct dmar_domain *domain, in hardware_largepage_caps() argument
2114 support = domain->iommu_superpage; in hardware_largepage_caps()
2133 static int __domain_mapping(struct dmar_domain *domain, unsigned long iov_pfn, in __domain_mapping() argument
2143 BUG_ON(!domain_pfn_supported(domain, iov_pfn + nr_pages - 1)); in __domain_mapping()
2167 largepage_lvl = hardware_largepage_caps(domain, iov_pfn, phys_pfn, sg_res); in __domain_mapping()
2169 first_pte = pte = pfn_to_dma_pte(domain, iov_pfn, &largepage_lvl); in __domain_mapping()
2186 dma_pte_free_pagetable(domain, iov_pfn, end_pfn); in __domain_mapping()
2232 domain_flush_cache(domain, first_pte, in __domain_mapping()
2243 static inline int domain_sg_mapping(struct dmar_domain *domain, unsigned long iov_pfn, in domain_sg_mapping() argument
2247 return __domain_mapping(domain, iov_pfn, sg, 0, nr_pages, prot); in domain_sg_mapping()
2250 static inline int domain_pfn_mapping(struct dmar_domain *domain, unsigned long iov_pfn, in domain_pfn_mapping() argument
2254 return __domain_mapping(domain, iov_pfn, NULL, phys_pfn, nr_pages, prot); in domain_pfn_mapping()
2277 static void domain_remove_dev_info(struct dmar_domain *domain) in domain_remove_dev_info() argument
2283 list_for_each_entry_safe(info, tmp, &domain->devices, link) in domain_remove_dev_info()
2299 return info->domain; in find_domain()
2319 struct dmar_domain *domain) in dmar_insert_one_dev_info() argument
2336 info->domain = domain; in dmar_insert_one_dev_info()
2368 found = info2->domain; in dmar_insert_one_dev_info()
2381 ret = domain_attach_iommu(domain, iommu); in dmar_insert_one_dev_info()
2390 list_add(&info->link, &domain->devices); in dmar_insert_one_dev_info()
2396 if (dev && domain_context_mapping(domain, dev)) { in dmar_insert_one_dev_info()
2398 dmar_remove_one_dev_info(domain, dev); in dmar_insert_one_dev_info()
2402 return domain; in dmar_insert_one_dev_info()
2415 struct dmar_domain *domain, *tmp; in get_domain_for_dev() local
2421 domain = find_domain(dev); in get_domain_for_dev()
2422 if (domain) in get_domain_for_dev()
2423 return domain; in get_domain_for_dev()
2442 domain = info->domain; in get_domain_for_dev()
2452 domain = alloc_domain(0); in get_domain_for_dev()
2453 if (!domain) in get_domain_for_dev()
2455 if (domain_init(domain, iommu, gaw)) { in get_domain_for_dev()
2456 domain_exit(domain); in get_domain_for_dev()
2463 dma_alias & 0xff, NULL, domain); in get_domain_for_dev()
2465 if (!tmp || tmp != domain) { in get_domain_for_dev()
2466 domain_exit(domain); in get_domain_for_dev()
2467 domain = tmp; in get_domain_for_dev()
2470 if (!domain) in get_domain_for_dev()
2475 tmp = dmar_insert_one_dev_info(iommu, bus, devfn, dev, domain); in get_domain_for_dev()
2477 if (!tmp || tmp != domain) { in get_domain_for_dev()
2478 domain_exit(domain); in get_domain_for_dev()
2479 domain = tmp; in get_domain_for_dev()
2482 return domain; in get_domain_for_dev()
2485 static int iommu_domain_identity_map(struct dmar_domain *domain, in iommu_domain_identity_map() argument
2492 if (!reserve_iova(&domain->iovad, dma_to_mm_pfn(first_vpfn), in iommu_domain_identity_map()
2503 dma_pte_clear_range(domain, first_vpfn, last_vpfn); in iommu_domain_identity_map()
2505 return domain_pfn_mapping(domain, first_vpfn, first_vpfn, in iommu_domain_identity_map()
2511 struct dmar_domain *domain, in domain_prepare_identity_map() argument
2519 if (domain == si_domain && hw_pass_through) { in domain_prepare_identity_map()
2537 if (end >> agaw_to_width(domain->agaw)) { in domain_prepare_identity_map()
2540 agaw_to_width(domain->agaw), in domain_prepare_identity_map()
2547 return iommu_domain_identity_map(domain, start, end); in domain_prepare_identity_map()
2554 struct dmar_domain *domain; in iommu_prepare_identity_map() local
2557 domain = get_domain_for_dev(dev, DEFAULT_DOMAIN_ADDRESS_WIDTH); in iommu_prepare_identity_map()
2558 if (!domain) in iommu_prepare_identity_map()
2561 ret = domain_prepare_identity_map(dev, domain, start, end); in iommu_prepare_identity_map()
2563 domain_exit(domain); in iommu_prepare_identity_map()
2602 static int md_domain_init(struct dmar_domain *domain, int guest_width);
2646 return (info->domain == si_domain); in identity_mapping()
2651 static int domain_add_dev_info(struct dmar_domain *domain, struct device *dev) in domain_add_dev_info() argument
2661 ndomain = dmar_insert_one_dev_info(iommu, bus, devfn, dev, domain); in domain_add_dev_info()
2662 if (ndomain != domain) in domain_add_dev_info()
3303 struct dmar_domain *domain, in intel_alloc_iova() argument
3309 dma_mask = min_t(uint64_t, DOMAIN_MAX_ADDR(domain->gaw), dma_mask); in intel_alloc_iova()
3319 iova = alloc_iova(&domain->iovad, nrpages, in intel_alloc_iova()
3324 iova = alloc_iova(&domain->iovad, nrpages, IOVA_PFN(dma_mask), 1); in intel_alloc_iova()
3337 struct dmar_domain *domain; in __get_valid_domain_for_dev() local
3341 domain = get_domain_for_dev(dev, DEFAULT_DOMAIN_ADDRESS_WIDTH); in __get_valid_domain_for_dev()
3342 if (!domain) { in __get_valid_domain_for_dev()
3356 ret = domain_prepare_identity_map(dev, domain, in __get_valid_domain_for_dev()
3365 return domain; in __get_valid_domain_for_dev()
3375 return info->domain; in get_valid_domain_for_dev()
3427 struct dmar_domain *domain; in __intel_map_single() local
3440 domain = get_valid_domain_for_dev(dev); in __intel_map_single()
3441 if (!domain) in __intel_map_single()
3444 iommu = domain_get_iommu(domain); in __intel_map_single()
3447 iova = intel_alloc_iova(dev, domain, dma_to_mm_pfn(size), dma_mask); in __intel_map_single()
3466 ret = domain_pfn_mapping(domain, mm_to_dma_pfn(iova->pfn_lo), in __intel_map_single()
3473 iommu_flush_iotlb_psi(iommu, domain, in __intel_map_single()
3485 __free_iova(&domain->iovad, iova); in __intel_map_single()
3522 struct dmar_domain *domain = deferred_flush[i].domain[j]; in flush_unmaps() local
3526 iommu_flush_iotlb_psi(iommu, domain, in flush_unmaps()
3531 iommu_flush_dev_iotlb(deferred_flush[i].domain[j], in flush_unmaps()
3534 __free_iova(&deferred_flush[i].domain[j]->iovad, iova); in flush_unmaps()
3567 deferred_flush[iommu_id].domain[next] = dom; in add_unmap()
3582 struct dmar_domain *domain; in intel_unmap() local
3591 domain = find_domain(dev); in intel_unmap()
3592 BUG_ON(!domain); in intel_unmap()
3594 iommu = domain_get_iommu(domain); in intel_unmap()
3596 iova = find_iova(&domain->iovad, IOVA_PFN(dev_addr)); in intel_unmap()
3607 freelist = domain_unmap(domain, start_pfn, last_pfn); in intel_unmap()
3610 iommu_flush_iotlb_psi(iommu, domain, start_pfn, in intel_unmap()
3613 __free_iova(&domain->iovad, iova); in intel_unmap()
3616 add_unmap(domain, iova, freelist); in intel_unmap()
3717 struct dmar_domain *domain; in intel_map_sg() local
3730 domain = get_valid_domain_for_dev(dev); in intel_map_sg()
3731 if (!domain) in intel_map_sg()
3734 iommu = domain_get_iommu(domain); in intel_map_sg()
3739 iova = intel_alloc_iova(dev, domain, dma_to_mm_pfn(size), in intel_map_sg()
3758 ret = domain_sg_mapping(domain, start_vpfn, sglist, size, prot); in intel_map_sg()
3760 dma_pte_free_pagetable(domain, start_vpfn, in intel_map_sg()
3762 __free_iova(&domain->iovad, iova); in intel_map_sg()
3768 iommu_flush_iotlb_psi(iommu, domain, start_vpfn, size, 0, 1); in intel_map_sg()
4410 struct dmar_domain *domain; in device_notifier() local
4418 domain = find_domain(dev); in device_notifier()
4419 if (!domain) in device_notifier()
4422 dmar_remove_one_dev_info(domain, dev); in device_notifier()
4423 if (!domain_type_is_vm_or_si(domain) && list_empty(&domain->devices)) in device_notifier()
4424 domain_exit(domain); in device_notifier()
4707 domain_detach_iommu(info->domain, iommu); in __dmar_remove_one_dev_info()
4713 static void dmar_remove_one_dev_info(struct dmar_domain *domain, in dmar_remove_one_dev_info() argument
4725 static int md_domain_init(struct dmar_domain *domain, int guest_width) in md_domain_init() argument
4729 init_iova_domain(&domain->iovad, VTD_PAGE_SIZE, IOVA_START_PFN, in md_domain_init()
4731 domain_reserve_special_ranges(domain); in md_domain_init()
4734 domain->gaw = guest_width; in md_domain_init()
4736 domain->agaw = width_to_agaw(adjust_width); in md_domain_init()
4738 domain->iommu_coherency = 0; in md_domain_init()
4739 domain->iommu_snooping = 0; in md_domain_init()
4740 domain->iommu_superpage = 0; in md_domain_init()
4741 domain->max_addr = 0; in md_domain_init()
4744 domain->pgd = (struct dma_pte *)alloc_pgtable_page(domain->nid); in md_domain_init()
4745 if (!domain->pgd) in md_domain_init()
4747 domain_flush_cache(domain, domain->pgd, PAGE_SIZE); in md_domain_init()
4754 struct iommu_domain *domain; in intel_iommu_domain_alloc() local
4771 domain = &dmar_domain->domain; in intel_iommu_domain_alloc()
4772 domain->geometry.aperture_start = 0; in intel_iommu_domain_alloc()
4773 domain->geometry.aperture_end = __DOMAIN_MAX_ADDR(dmar_domain->gaw); in intel_iommu_domain_alloc()
4774 domain->geometry.force_aperture = true; in intel_iommu_domain_alloc()
4776 return domain; in intel_iommu_domain_alloc()
4779 static void intel_iommu_domain_free(struct iommu_domain *domain) in intel_iommu_domain_free() argument
4781 domain_exit(to_dmar_domain(domain)); in intel_iommu_domain_free()
4784 static int intel_iommu_attach_device(struct iommu_domain *domain, in intel_iommu_attach_device() argument
4787 struct dmar_domain *dmar_domain = to_dmar_domain(domain); in intel_iommu_attach_device()
4848 static void intel_iommu_detach_device(struct iommu_domain *domain, in intel_iommu_detach_device() argument
4851 dmar_remove_one_dev_info(to_dmar_domain(domain), dev); in intel_iommu_detach_device()
4854 static int intel_iommu_map(struct iommu_domain *domain, in intel_iommu_map() argument
4858 struct dmar_domain *dmar_domain = to_dmar_domain(domain); in intel_iommu_map()
4892 static size_t intel_iommu_unmap(struct iommu_domain *domain, in intel_iommu_unmap() argument
4895 struct dmar_domain *dmar_domain = to_dmar_domain(domain); in intel_iommu_unmap()
4931 static phys_addr_t intel_iommu_iova_to_phys(struct iommu_domain *domain, in intel_iommu_iova_to_phys() argument
4934 struct dmar_domain *dmar_domain = to_dmar_domain(domain); in intel_iommu_iova_to_phys()
4996 struct dmar_domain *domain; in intel_iommu_enable_pasid() local
5001 domain = get_valid_domain_for_dev(sdev->dev); in intel_iommu_enable_pasid()
5002 if (!domain) in intel_iommu_enable_pasid()
5019 sdev->did = domain->iommu_did[iommu->seq_id]; in intel_iommu_enable_pasid()