aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/iommu/intel-iommu.c
diff options
context:
space:
mode:
authorJiang Liu <jiang.liu@linux.intel.com>2014-02-19 01:07:25 -0500
committerJoerg Roedel <joro@8bytes.org>2014-03-04 11:51:00 -0500
commitb94e4117f8c4ffb591b1e462364d725e3a1c63c4 (patch)
treef5c60346cfbe051d74a6ac6817852033b3f633f3 /drivers/iommu/intel-iommu.c
parentbb3a6b7845851d23cb826040b4c3c9c294e7cfb4 (diff)
iommu/vt-d: Move private structures and variables into intel-iommu.c
Move private structures and variables into intel-iommu.c, which will help to simplify locking policy for hotplug. Also delete redundant declarations. Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com> Signed-off-by: Joerg Roedel <joro@8bytes.org>
Diffstat (limited to 'drivers/iommu/intel-iommu.c')
-rw-r--r--drivers/iommu/intel-iommu.c31
1 files changed, 25 insertions, 6 deletions
diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c
index 5a411e83433c..fffe3d166662 100644
--- a/drivers/iommu/intel-iommu.c
+++ b/drivers/iommu/intel-iommu.c
@@ -380,6 +380,29 @@ struct device_domain_info {
380 struct dmar_domain *domain; /* pointer to domain */ 380 struct dmar_domain *domain; /* pointer to domain */
381}; 381};
382 382
383struct dmar_rmrr_unit {
384 struct list_head list; /* list of rmrr units */
385 struct acpi_dmar_header *hdr; /* ACPI header */
386 u64 base_address; /* reserved base address*/
387 u64 end_address; /* reserved end address */
388 struct pci_dev **devices; /* target devices */
389 int devices_cnt; /* target device count */
390};
391
392struct dmar_atsr_unit {
393 struct list_head list; /* list of ATSR units */
394 struct acpi_dmar_header *hdr; /* ACPI header */
395 struct pci_dev **devices; /* target devices */
396 int devices_cnt; /* target device count */
397 u8 include_all:1; /* include all ports */
398};
399
400static LIST_HEAD(dmar_atsr_units);
401static LIST_HEAD(dmar_rmrr_units);
402
403#define for_each_rmrr_units(rmrr) \
404 list_for_each_entry(rmrr, &dmar_rmrr_units, list)
405
383static void flush_unmaps_timeout(unsigned long data); 406static void flush_unmaps_timeout(unsigned long data);
384 407
385static DEFINE_TIMER(unmap_timer, flush_unmaps_timeout, 0, 0); 408static DEFINE_TIMER(unmap_timer, flush_unmaps_timeout, 0, 0);
@@ -403,6 +426,8 @@ static int timer_on;
403static long list_size; 426static long list_size;
404 427
405static void domain_remove_dev_info(struct dmar_domain *domain); 428static void domain_remove_dev_info(struct dmar_domain *domain);
429static void domain_remove_one_dev_info(struct dmar_domain *domain,
430 struct pci_dev *pdev);
406 431
407#ifdef CONFIG_INTEL_IOMMU_DEFAULT_ON 432#ifdef CONFIG_INTEL_IOMMU_DEFAULT_ON
408int dmar_disabled = 0; 433int dmar_disabled = 0;
@@ -2243,8 +2268,6 @@ static int __init si_domain_init(int hw)
2243 return 0; 2268 return 0;
2244} 2269}
2245 2270
2246static void domain_remove_one_dev_info(struct dmar_domain *domain,
2247 struct pci_dev *pdev);
2248static int identity_mapping(struct pci_dev *pdev) 2271static int identity_mapping(struct pci_dev *pdev)
2249{ 2272{
2250 struct device_domain_info *info; 2273 struct device_domain_info *info;
@@ -3432,8 +3455,6 @@ static void __init init_iommu_pm_ops(void)
3432static inline void init_iommu_pm_ops(void) {} 3455static inline void init_iommu_pm_ops(void) {}
3433#endif /* CONFIG_PM */ 3456#endif /* CONFIG_PM */
3434 3457
3435LIST_HEAD(dmar_rmrr_units);
3436
3437static void __init dmar_register_rmrr_unit(struct dmar_rmrr_unit *rmrr) 3458static void __init dmar_register_rmrr_unit(struct dmar_rmrr_unit *rmrr)
3438{ 3459{
3439 list_add(&rmrr->list, &dmar_rmrr_units); 3460 list_add(&rmrr->list, &dmar_rmrr_units);
@@ -3470,8 +3491,6 @@ rmrr_parse_dev(struct dmar_rmrr_unit *rmrru)
3470 rmrr->segment); 3491 rmrr->segment);
3471} 3492}
3472 3493
3473static LIST_HEAD(dmar_atsr_units);
3474
3475int __init dmar_parse_one_atsr(struct acpi_dmar_header *hdr) 3494int __init dmar_parse_one_atsr(struct acpi_dmar_header *hdr)
3476{ 3495{
3477 struct acpi_dmar_atsr *atsr; 3496 struct acpi_dmar_atsr *atsr;