+++ /dev/null
-From: Suresh Siddha <suresh.b.siddha@intel.com>
-Subject: x64, x2apic/intr-remap: disable DMA-remapping if Interrupt-remapping is detected (temporary quirk)
-References: fate #303948 and fate #303984
-Patch-Mainline: queued for .28
-Commit-ID: 1cb11583a6c4ceda7426eb36f7bf0419da8dfbc2
-
-Signed-off-by: Thomas Renninger <trenn@suse.de>
-
-Interrupt-remapping enables queued invalidation. And once queued invalidation
-is enabled, IOTLB invalidation also needs to use the queued invalidation
-mechanism and the register based IOTLB invalidation doesn't work.
-
-For now, Support for IOTLB invalidation using queued invalidation is
-missing. Meanwhile, disable DMA-remapping, if Interrupt-remapping
-support is detected.
-
-For the meanwhile, if someone wants to really enable DMA-remapping, they
-can use nox2apic, which will disable interrupt-remapping and as such
-doesn't enable queued invalidation.
-
-And given that none of the release platforms support intr-remapping yet,
-we should be ok for this temporary hack.
-
-Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
-Cc: akpm@linux-foundation.org
-Cc: arjan@linux.intel.com
-Cc: andi@firstfloor.org
-Cc: ebiederm@xmission.com
-Cc: jbarnes@virtuousgeek.org
-Cc: steiner@sgi.com
-Signed-off-by: Ingo Molnar <mingo@elte.hu>
-
----
- drivers/pci/dmar.c | 25 +++++++++++++++++++++++++
- 1 file changed, 25 insertions(+)
-
-Index: linux-2.6.26/drivers/pci/dmar.c
-===================================================================
---- linux-2.6.26.orig/drivers/pci/dmar.c
-+++ linux-2.6.26/drivers/pci/dmar.c
-@@ -459,6 +459,31 @@ void __init detect_intel_iommu(void)
-
- #ifdef CONFIG_DMAR
- {
-+ struct acpi_table_dmar *dmar;
-+ /*
-+ * for now we will disable dma-remapping when interrupt
-+ * remapping is enabled.
-+ * When support for queued invalidation for IOTLB invalidation
-+ * is added, we will not need this any more.
-+ */
-+ dmar = (struct acpi_table_dmar *) dmar_tbl;
-+ if (ret && cpu_has_x2apic && dmar->flags & 0x1) {
-+ printk(KERN_INFO
-+ "Queued invalidation will be enabled to support "
-+ "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;
-+ }
-+
- if (ret && !no_iommu && !iommu_detected && !swiotlb &&
- !dmar_disabled)
- iommu_detected = 1;