Symbol: dmar_domain
arch/x86/kernel/apic/msi.c
345
static struct irq_domain *dmar_domain;
arch/x86/kernel/apic/msi.c
350
if (dmar_domain)
arch/x86/kernel/apic/msi.c
355
dmar_domain = msi_create_irq_domain(fn, &dmar_msi_domain_info,
arch/x86/kernel/apic/msi.c
357
if (!dmar_domain)
arch/x86/kernel/apic/msi.c
362
return dmar_domain;
drivers/iommu/intel/cache.c
117
static int domain_qi_batch_alloc(struct dmar_domain *domain)
drivers/iommu/intel/cache.c
135
static int __cache_tag_assign_domain(struct dmar_domain *domain, u16 did,
drivers/iommu/intel/cache.c
156
static void __cache_tag_unassign_domain(struct dmar_domain *domain, u16 did,
drivers/iommu/intel/cache.c
167
static int __cache_tag_assign_parent_domain(struct dmar_domain *domain, u16 did,
drivers/iommu/intel/cache.c
188
static void __cache_tag_unassign_parent_domain(struct dmar_domain *domain, u16 did,
drivers/iommu/intel/cache.c
199
static u16 domain_get_id_for_dev(struct dmar_domain *domain, struct device *dev)
drivers/iommu/intel/cache.c
222
int cache_tag_assign_domain(struct dmar_domain *domain,
drivers/iommu/intel/cache.c
246
void cache_tag_unassign_domain(struct dmar_domain *domain,
drivers/iommu/intel/cache.c
355
static bool intel_domain_use_piotlb(struct dmar_domain *domain)
drivers/iommu/intel/cache.c
362
static void cache_tag_flush_iotlb(struct dmar_domain *domain, struct cache_tag *tag,
drivers/iommu/intel/cache.c
397
static void cache_tag_flush_devtlb_psi(struct dmar_domain *domain, struct cache_tag *tag,
drivers/iommu/intel/cache.c
428
void cache_tag_flush_range(struct dmar_domain *domain, unsigned long start,
drivers/iommu/intel/cache.c
43
int cache_tag_assign(struct dmar_domain *domain, u16 did, struct device *dev,
drivers/iommu/intel/cache.c
475
void cache_tag_flush_all(struct dmar_domain *domain)
drivers/iommu/intel/cache.c
491
void cache_tag_flush_range_np(struct dmar_domain *domain, unsigned long start,
drivers/iommu/intel/cache.c
93
static void cache_tag_unassign(struct dmar_domain *domain, u16 did,
drivers/iommu/intel/iommu.c
1028
int domain_attach_iommu(struct dmar_domain *domain, struct intel_iommu *iommu)
drivers/iommu/intel/iommu.c
1074
void domain_detach_iommu(struct dmar_domain *domain, struct intel_iommu *iommu)
drivers/iommu/intel/iommu.c
1145
static int domain_context_mapping_one(struct dmar_domain *domain,
drivers/iommu/intel/iommu.c
1205
struct dmar_domain *domain = opaque;
drivers/iommu/intel/iommu.c
1212
domain_context_mapping(struct dmar_domain *domain, struct device *dev)
drivers/iommu/intel/iommu.c
1265
struct dmar_domain *domain,
drivers/iommu/intel/iommu.c
1286
struct dmar_domain *domain,
drivers/iommu/intel/iommu.c
1312
static int dmar_domain_attach_device(struct dmar_domain *domain,
drivers/iommu/intel/iommu.c
2781
static struct dmar_domain *paging_domain_alloc(void)
drivers/iommu/intel/iommu.c
2783
struct dmar_domain *domain;
drivers/iommu/intel/iommu.c
2828
struct dmar_domain *dmar_domain;
drivers/iommu/intel/iommu.c
2838
dmar_domain = paging_domain_alloc();
drivers/iommu/intel/iommu.c
2839
if (IS_ERR(dmar_domain))
drivers/iommu/intel/iommu.c
2840
return ERR_CAST(dmar_domain);
drivers/iommu/intel/iommu.c
2850
dmar_domain->iommu.iommu_device = dev;
drivers/iommu/intel/iommu.c
2851
dmar_domain->iommu.nid = dev_to_node(dev);
drivers/iommu/intel/iommu.c
2852
dmar_domain->domain.ops = &intel_fs_paging_domain_ops;
drivers/iommu/intel/iommu.c
2859
dmar_domain->iotlb_sync_map = true;
drivers/iommu/intel/iommu.c
2861
ret = pt_iommu_x86_64_init(&dmar_domain->fspt, &cfg, GFP_KERNEL);
drivers/iommu/intel/iommu.c
2863
kfree(dmar_domain);
drivers/iommu/intel/iommu.c
2868
dmar_domain->domain.pgsize_bitmap &= ~(u64)SZ_1G;
drivers/iommu/intel/iommu.c
2870
dmar_domain->domain.pgsize_bitmap = SZ_4K;
drivers/iommu/intel/iommu.c
2872
return &dmar_domain->domain;
drivers/iommu/intel/iommu.c
2910
struct dmar_domain *dmar_domain;
drivers/iommu/intel/iommu.c
2929
dmar_domain = paging_domain_alloc();
drivers/iommu/intel/iommu.c
2930
if (IS_ERR(dmar_domain))
drivers/iommu/intel/iommu.c
2931
return ERR_CAST(dmar_domain);
drivers/iommu/intel/iommu.c
2947
dmar_domain->iommu.iommu_device = dev;
drivers/iommu/intel/iommu.c
2948
dmar_domain->iommu.nid = dev_to_node(dev);
drivers/iommu/intel/iommu.c
2949
dmar_domain->domain.ops = &intel_ss_paging_domain_ops;
drivers/iommu/intel/iommu.c
2950
dmar_domain->nested_parent = flags & IOMMU_HWPT_ALLOC_NEST_PARENT;
drivers/iommu/intel/iommu.c
2953
dmar_domain->domain.dirty_ops = &intel_second_stage_dirty_ops;
drivers/iommu/intel/iommu.c
2955
ret = pt_iommu_vtdss_init(&dmar_domain->sspt, &cfg, GFP_KERNEL);
drivers/iommu/intel/iommu.c
2957
kfree(dmar_domain);
drivers/iommu/intel/iommu.c
2964
dmar_domain->domain.pgsize_bitmap &= ~(u64)SZ_2M;
drivers/iommu/intel/iommu.c
2966
dmar_domain->domain.pgsize_bitmap &= ~(u64)SZ_1G;
drivers/iommu/intel/iommu.c
2968
dmar_domain->domain.pgsize_bitmap = SZ_4K;
drivers/iommu/intel/iommu.c
2976
dmar_domain->iotlb_sync_map = true;
drivers/iommu/intel/iommu.c
2978
return &dmar_domain->domain;
drivers/iommu/intel/iommu.c
3001
struct dmar_domain *dmar_domain = to_dmar_domain(domain);
drivers/iommu/intel/iommu.c
3003
if (WARN_ON(dmar_domain->nested_parent &&
drivers/iommu/intel/iommu.c
3004
!list_empty(&dmar_domain->s1_domains)))
drivers/iommu/intel/iommu.c
3007
if (WARN_ON(!list_empty(&dmar_domain->devices)))
drivers/iommu/intel/iommu.c
3010
pt_iommu_deinit(&dmar_domain->iommu);
drivers/iommu/intel/iommu.c
3012
kfree(dmar_domain->qi_batch);
drivers/iommu/intel/iommu.c
3013
kfree(dmar_domain);
drivers/iommu/intel/iommu.c
3016
static int paging_domain_compatible_first_stage(struct dmar_domain *dmar_domain,
drivers/iommu/intel/iommu.c
3019
if (WARN_ON(dmar_domain->domain.dirty_ops ||
drivers/iommu/intel/iommu.c
3020
dmar_domain->nested_parent))
drivers/iommu/intel/iommu.c
3028
!(dmar_domain->fspt.x86_64_pt.common.features &
drivers/iommu/intel/iommu.c
3034
dmar_domain->fspt.x86_64_pt.common.max_vasz_lg2 > 48)
drivers/iommu/intel/iommu.c
3039
(dmar_domain->domain.pgsize_bitmap & SZ_1G))
drivers/iommu/intel/iommu.c
3043
if ((rwbf_required(iommu)) && !dmar_domain->iotlb_sync_map)
drivers/iommu/intel/iommu.c
3050
paging_domain_compatible_second_stage(struct dmar_domain *dmar_domain,
drivers/iommu/intel/iommu.c
3053
unsigned int vasz_lg2 = dmar_domain->sspt.vtdss_pt.common.max_vasz_lg2;
drivers/iommu/intel/iommu.c
3057
pt_iommu_vtdss_hw_info(&dmar_domain->sspt, &pt_info);
drivers/iommu/intel/iommu.c
3059
if (dmar_domain->domain.dirty_ops && !ssads_supported(iommu))
drivers/iommu/intel/iommu.c
3061
if (dmar_domain->nested_parent && !nested_supported(iommu))
drivers/iommu/intel/iommu.c
3069
!(dmar_domain->sspt.vtdss_pt.common.features &
drivers/iommu/intel/iommu.c
3082
if (!(sslps & BIT(0)) && (dmar_domain->domain.pgsize_bitmap & SZ_2M))
drivers/iommu/intel/iommu.c
3084
if (!(sslps & BIT(1)) && (dmar_domain->domain.pgsize_bitmap & SZ_1G))
drivers/iommu/intel/iommu.c
3089
!dmar_domain->iotlb_sync_map)
drivers/iommu/intel/iommu.c
3096
if ((dmar_domain->sspt.vtdss_pt.common.features &
drivers/iommu/intel/iommu.c
3106
struct dmar_domain *dmar_domain = to_dmar_domain(domain);
drivers/iommu/intel/iommu.c
3110
if (intel_domain_is_fs_paging(dmar_domain))
drivers/iommu/intel/iommu.c
3111
ret = paging_domain_compatible_first_stage(dmar_domain, iommu);
drivers/iommu/intel/iommu.c
3112
else if (intel_domain_is_ss_paging(dmar_domain))
drivers/iommu/intel/iommu.c
3113
ret = paging_domain_compatible_second_stage(dmar_domain, iommu);
drivers/iommu/intel/iommu.c
3158
static bool domain_support_force_snooping(struct dmar_domain *domain)
drivers/iommu/intel/iommu.c
3176
struct dmar_domain *dmar_domain = to_dmar_domain(domain);
drivers/iommu/intel/iommu.c
3179
guard(spinlock_irqsave)(&dmar_domain->lock);
drivers/iommu/intel/iommu.c
3181
if (dmar_domain->force_snooping)
drivers/iommu/intel/iommu.c
3184
if (!domain_support_force_snooping(dmar_domain))
drivers/iommu/intel/iommu.c
3187
dmar_domain->force_snooping = true;
drivers/iommu/intel/iommu.c
3188
list_for_each_entry(info, &dmar_domain->devices, link)
drivers/iommu/intel/iommu.c
3196
struct dmar_domain *dmar_domain = to_dmar_domain(domain);
drivers/iommu/intel/iommu.c
3198
guard(spinlock_irqsave)(&dmar_domain->lock);
drivers/iommu/intel/iommu.c
3199
if (!domain_support_force_snooping(dmar_domain))
drivers/iommu/intel/iommu.c
3206
dmar_domain->sspt.vtdss_pt.common.features |=
drivers/iommu/intel/iommu.c
3208
dmar_domain->force_snooping = true;
drivers/iommu/intel/iommu.c
3517
struct dmar_domain *dmar_domain = to_dmar_domain(domain);
drivers/iommu/intel/iommu.c
3519
if (dmar_domain->iotlb_sync_map)
drivers/iommu/intel/iommu.c
3520
cache_tag_flush_range_np(dmar_domain, iova, iova + size - 1);
drivers/iommu/intel/iommu.c
3531
struct dmar_domain *dmar_domain;
drivers/iommu/intel/iommu.c
3541
dmar_domain = to_dmar_domain(domain);
drivers/iommu/intel/iommu.c
3542
spin_lock_irqsave(&dmar_domain->lock, flags);
drivers/iommu/intel/iommu.c
3543
list_for_each_entry(curr, &dmar_domain->dev_pasids, link_domain) {
drivers/iommu/intel/iommu.c
3550
spin_unlock_irqrestore(&dmar_domain->lock, flags);
drivers/iommu/intel/iommu.c
3555
cache_tag_unassign_domain(dmar_domain, dev, pasid);
drivers/iommu/intel/iommu.c
3556
domain_detach_iommu(dmar_domain, iommu);
drivers/iommu/intel/iommu.c
3579
struct dmar_domain *dmar_domain = to_dmar_domain(domain);
drivers/iommu/intel/iommu.c
3589
ret = domain_attach_iommu(dmar_domain, iommu);
drivers/iommu/intel/iommu.c
3593
ret = cache_tag_assign_domain(dmar_domain, dev, pasid);
drivers/iommu/intel/iommu.c
3599
spin_lock_irqsave(&dmar_domain->lock, flags);
drivers/iommu/intel/iommu.c
3600
list_add(&dev_pasid->link_domain, &dmar_domain->dev_pasids);
drivers/iommu/intel/iommu.c
3601
spin_unlock_irqrestore(&dmar_domain->lock, flags);
drivers/iommu/intel/iommu.c
3605
domain_detach_iommu(dmar_domain, iommu);
drivers/iommu/intel/iommu.c
3616
struct dmar_domain *dmar_domain = to_dmar_domain(domain);
drivers/iommu/intel/iommu.c
3642
if (intel_domain_is_fs_paging(dmar_domain))
drivers/iommu/intel/iommu.c
3643
ret = domain_setup_first_level(iommu, dmar_domain,
drivers/iommu/intel/iommu.c
3645
else if (intel_domain_is_ss_paging(dmar_domain))
drivers/iommu/intel/iommu.c
3646
ret = domain_setup_second_level(iommu, dmar_domain,
drivers/iommu/intel/iommu.c
3691
static int domain_set_dirty_tracking(struct dmar_domain *domain, bool enable)
drivers/iommu/intel/iommu.c
3717
static int parent_domain_set_dirty_tracking(struct dmar_domain *domain,
drivers/iommu/intel/iommu.c
3720
struct dmar_domain *s1_domain;
drivers/iommu/intel/iommu.c
3748
struct dmar_domain *dmar_domain = to_dmar_domain(domain);
drivers/iommu/intel/iommu.c
3751
spin_lock(&dmar_domain->lock);
drivers/iommu/intel/iommu.c
3752
if (dmar_domain->dirty_tracking == enable)
drivers/iommu/intel/iommu.c
3755
ret = domain_set_dirty_tracking(dmar_domain, enable);
drivers/iommu/intel/iommu.c
3759
if (dmar_domain->nested_parent) {
drivers/iommu/intel/iommu.c
3760
ret = parent_domain_set_dirty_tracking(dmar_domain, enable);
drivers/iommu/intel/iommu.c
3765
dmar_domain->dirty_tracking = enable;
drivers/iommu/intel/iommu.c
3767
spin_unlock(&dmar_domain->lock);
drivers/iommu/intel/iommu.c
3772
domain_set_dirty_tracking(dmar_domain, dmar_domain->dirty_tracking);
drivers/iommu/intel/iommu.c
3773
spin_unlock(&dmar_domain->lock);
drivers/iommu/intel/iommu.c
831
domain_lookup_dev_info(struct dmar_domain *domain,
drivers/iommu/intel/iommu.h
1183
int domain_attach_iommu(struct dmar_domain *domain, struct intel_iommu *iommu);
drivers/iommu/intel/iommu.h
1184
void domain_detach_iommu(struct dmar_domain *domain, struct intel_iommu *iommu);
drivers/iommu/intel/iommu.h
1230
int cache_tag_assign(struct dmar_domain *domain, u16 did, struct device *dev,
drivers/iommu/intel/iommu.h
1232
int cache_tag_assign_domain(struct dmar_domain *domain,
drivers/iommu/intel/iommu.h
1234
void cache_tag_unassign_domain(struct dmar_domain *domain,
drivers/iommu/intel/iommu.h
1236
void cache_tag_flush_range(struct dmar_domain *domain, unsigned long start,
drivers/iommu/intel/iommu.h
1238
void cache_tag_flush_all(struct dmar_domain *domain);
drivers/iommu/intel/iommu.h
1239
void cache_tag_flush_range_np(struct dmar_domain *domain, unsigned long start,
drivers/iommu/intel/iommu.h
1333
static inline bool intel_domain_is_fs_paging(struct dmar_domain *domain)
drivers/iommu/intel/iommu.h
1338
static inline bool intel_domain_is_ss_paging(struct dmar_domain *domain)
drivers/iommu/intel/iommu.h
631
struct dmar_domain *s2_domain;
drivers/iommu/intel/iommu.h
644
PT_IOMMU_CHECK_DOMAIN(struct dmar_domain, iommu, domain);
drivers/iommu/intel/iommu.h
645
PT_IOMMU_CHECK_DOMAIN(struct dmar_domain, sspt.iommu, domain);
drivers/iommu/intel/iommu.h
646
PT_IOMMU_CHECK_DOMAIN(struct dmar_domain, fspt.iommu, domain);
drivers/iommu/intel/iommu.h
758
struct dmar_domain *domain; /* pointer to domain */
drivers/iommu/intel/iommu.h
784
static inline struct dmar_domain *to_dmar_domain(struct iommu_domain *dom)
drivers/iommu/intel/iommu.h
786
return container_of(dom, struct dmar_domain, domain);
drivers/iommu/intel/iommu.h
809
domain_id_iommu(struct dmar_domain *domain, struct intel_iommu *iommu)
drivers/iommu/intel/nested.c
123
cache_tag_flush_range(dmar_domain, inv_entry.addr,
drivers/iommu/intel/nested.c
135
struct dmar_domain *domain,
drivers/iommu/intel/nested.c
150
struct dmar_domain *dmar_domain = to_dmar_domain(domain);
drivers/iommu/intel/nested.c
161
ret = paging_domain_compatible(&dmar_domain->s2_domain->domain, dev);
drivers/iommu/intel/nested.c
173
ret = domain_setup_nested(iommu, dmar_domain, dev, pasid, old);
drivers/iommu/intel/nested.c
201
struct dmar_domain *s2_domain = to_dmar_domain(parent);
drivers/iommu/intel/nested.c
204
struct dmar_domain *domain;
drivers/iommu/intel/nested.c
25
struct dmar_domain *dmar_domain = to_dmar_domain(domain);
drivers/iommu/intel/nested.c
37
ret = paging_domain_compatible(&dmar_domain->s2_domain->domain, dev);
drivers/iommu/intel/nested.c
43
ret = domain_attach_iommu(dmar_domain, iommu);
drivers/iommu/intel/nested.c
49
ret = cache_tag_assign_domain(dmar_domain, dev, IOMMU_NO_PASID);
drivers/iommu/intel/nested.c
58
IOMMU_NO_PASID, dmar_domain);
drivers/iommu/intel/nested.c
62
info->domain = dmar_domain;
drivers/iommu/intel/nested.c
64
spin_lock_irqsave(&dmar_domain->lock, flags);
drivers/iommu/intel/nested.c
65
list_add(&info->link, &dmar_domain->devices);
drivers/iommu/intel/nested.c
66
spin_unlock_irqrestore(&dmar_domain->lock, flags);
drivers/iommu/intel/nested.c
72
cache_tag_unassign_domain(dmar_domain, dev, IOMMU_NO_PASID);
drivers/iommu/intel/nested.c
74
domain_detach_iommu(dmar_domain, iommu);
drivers/iommu/intel/nested.c
81
struct dmar_domain *dmar_domain = to_dmar_domain(domain);
drivers/iommu/intel/nested.c
82
struct dmar_domain *s2_domain = dmar_domain->s2_domain;
drivers/iommu/intel/nested.c
85
list_del(&dmar_domain->s2_link);
drivers/iommu/intel/nested.c
87
kfree(dmar_domain->qi_batch);
drivers/iommu/intel/nested.c
88
kfree(dmar_domain);
drivers/iommu/intel/nested.c
94
struct dmar_domain *dmar_domain = to_dmar_domain(domain);
drivers/iommu/intel/pasid.c
425
struct dmar_domain *domain, u16 did)
drivers/iommu/intel/pasid.c
447
struct dmar_domain *domain,
drivers/iommu/intel/pasid.c
624
struct dmar_domain *s2_domain,
drivers/iommu/intel/pasid.c
676
u32 pasid, struct dmar_domain *domain)
drivers/iommu/intel/pasid.c
679
struct dmar_domain *s2_domain = domain->s2_domain;
drivers/iommu/intel/pasid.h
310
struct dmar_domain *domain,
drivers/iommu/intel/pasid.h
318
u32 pasid, struct dmar_domain *domain);
drivers/iommu/intel/prq.c
63
struct dmar_domain *domain;
drivers/iommu/intel/svm.c
101
struct dmar_domain *domain = container_of(mn, struct dmar_domain, notifier);
drivers/iommu/intel/svm.c
192
struct dmar_domain *dmar_domain = to_dmar_domain(domain);
drivers/iommu/intel/svm.c
195
mmu_notifier_put(&dmar_domain->notifier);
drivers/iommu/intel/svm.c
206
struct dmar_domain *domain;
drivers/iommu/intel/svm.c
55
struct dmar_domain *domain = container_of(mn, struct dmar_domain, notifier);
drivers/iommu/intel/svm.c
72
struct dmar_domain *domain = container_of(mn, struct dmar_domain, notifier);