|
@@ -455,8 +455,8 @@ void __init detect_intel_iommu(void)
|
|
|
|
|
|
ret = early_dmar_detect();
|
|
ret = early_dmar_detect();
|
|
|
|
|
|
-#ifdef CONFIG_DMAR
|
|
|
|
{
|
|
{
|
|
|
|
+#ifdef CONFIG_INTR_REMAP
|
|
struct acpi_table_dmar *dmar;
|
|
struct acpi_table_dmar *dmar;
|
|
/*
|
|
/*
|
|
* for now we will disable dma-remapping when interrupt
|
|
* for now we will disable dma-remapping when interrupt
|
|
@@ -465,28 +465,18 @@ void __init detect_intel_iommu(void)
|
|
* is added, we will not need this any more.
|
|
* is added, we will not need this any more.
|
|
*/
|
|
*/
|
|
dmar = (struct acpi_table_dmar *) dmar_tbl;
|
|
dmar = (struct acpi_table_dmar *) dmar_tbl;
|
|
- if (ret && cpu_has_x2apic && dmar->flags & 0x1) {
|
|
|
|
|
|
+ if (ret && cpu_has_x2apic && dmar->flags & 0x1)
|
|
printk(KERN_INFO
|
|
printk(KERN_INFO
|
|
"Queued invalidation will be enabled to support "
|
|
"Queued invalidation will be enabled to support "
|
|
"x2apic and Intr-remapping.\n");
|
|
"x2apic and Intr-remapping.\n");
|
|
- printk(KERN_INFO
|
|
|
|
- "Disabling IOMMU detection, because of missing "
|
|
|
|
- "queued invalidation support for IOTLB "
|
|
|
|
- "invalidation\n");
|
|
|
|
- printk(KERN_INFO
|
|
|
|
- "Use \"nox2apic\", if you want to use Intel "
|
|
|
|
- " IOMMU for DMA-remapping and don't care about "
|
|
|
|
- " x2apic support\n");
|
|
|
|
-
|
|
|
|
- dmar_disabled = 1;
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
|
|
+#endif
|
|
|
|
|
|
|
|
+#ifdef CONFIG_DMAR
|
|
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
|
|
#endif
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|