aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86/kernel/amd_iommu_init.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/arch/x86/kernel/amd_iommu_init.c b/arch/x86/kernel/amd_iommu_init.c
index c792ddc4fec6..d7a75bf0f7e6 100644
--- a/arch/x86/kernel/amd_iommu_init.c
+++ b/arch/x86/kernel/amd_iommu_init.c
@@ -769,3 +769,23 @@ free:
769 goto out; 769 goto out;
770} 770}
771 771
772static int __init early_amd_iommu_detect(struct acpi_table_header *table)
773{
774 return 0;
775}
776
777void __init amd_iommu_detect(void)
778{
779 if (swiotlb || no_iommu || iommu_detected)
780 return;
781
782 if (amd_iommu_disable)
783 return;
784
785 if (acpi_table_parse("IVRS", early_amd_iommu_detect) == 0) {
786 iommu_detected = 1;
787 gart_iommu_aperture_disabled = 1;
788 gart_iommu_aperture = 0;
789 }
790}
791