x86: intel-iommu: Convert detect_intel_iommu to use iommu_init hook
This changes detect_intel_iommu() to set intel_iommu_init() to iommu_init hook if detect_intel_iommu() finds the IOMMU. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Cc: chrisw@sous-sol.org Cc: dwmw2@infradead.org Cc: joerg.roedel@amd.com Cc: muli@il.ibm.com LKML-Reference: <1257849980-22640-6-git-send-email-fujita.tomonori@lab.ntt.co.jp> [ -v2: build fix for the !CONFIG_DMAR case ] Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
ea1b0d3945
commit
9d5ce73a64
3 changed files with 8 additions and 13 deletions
|
@ -294,8 +294,6 @@ static int __init pci_iommu_init(void)
|
||||||
|
|
||||||
x86_init.iommu.iommu_init();
|
x86_init.iommu.iommu_init();
|
||||||
|
|
||||||
intel_iommu_init();
|
|
||||||
|
|
||||||
no_iommu_init();
|
no_iommu_init();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -616,6 +616,10 @@ void __init detect_intel_iommu(void)
|
||||||
if (ret && !no_iommu && !iommu_detected && !swiotlb &&
|
if (ret && !no_iommu && !iommu_detected && !swiotlb &&
|
||||||
!dmar_disabled)
|
!dmar_disabled)
|
||||||
iommu_detected = 1;
|
iommu_detected = 1;
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_X86
|
||||||
|
if (ret)
|
||||||
|
x86_init.iommu.iommu_init = intel_iommu_init;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
early_acpi_os_unmap_memory(dmar_tbl, dmar_tbl_size);
|
early_acpi_os_unmap_memory(dmar_tbl, dmar_tbl_size);
|
||||||
|
|
|
@ -208,16 +208,9 @@ struct dmar_atsr_unit {
|
||||||
u8 include_all:1; /* include all ports */
|
u8 include_all:1; /* include all ports */
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Intel DMAR initialization functions */
|
|
||||||
extern int intel_iommu_init(void);
|
extern int intel_iommu_init(void);
|
||||||
#else
|
#else /* !CONFIG_DMAR: */
|
||||||
static inline int intel_iommu_init(void)
|
static inline int intel_iommu_init(void) { return -ENODEV; }
|
||||||
{
|
#endif /* CONFIG_DMAR */
|
||||||
#ifdef CONFIG_INTR_REMAP
|
|
||||||
return dmar_dev_scope_init();
|
|
||||||
#else
|
|
||||||
return -ENODEV;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
#endif /* !CONFIG_DMAR */
|
|
||||||
#endif /* __DMAR_H__ */
|
#endif /* __DMAR_H__ */
|
||||||
|
|
Loading…
Add table
Reference in a new issue