diff options
author | Youquan Song <youquan.song@intel.com> | 2008-10-16 19:31:57 -0400 |
---|---|---|
committer | David Woodhouse <David.Woodhouse@intel.com> | 2008-10-17 03:05:30 -0400 |
commit | cacd4213d8ffed83676f38d5d8e93c673e0f1af7 (patch) | |
tree | ffaba6f6b6597973ac7f605809446621dbc8fc6c | |
parent | a77b67d4023770805141014b8fa9eb5467457817 (diff) |
dmar: remove the quirk which disables dma-remapping when intr-remapping enabled
Now that we have DMA-remapping support for queued invalidation, we
can enable both DMA-remapping and interrupt-remapping at the same time.
Signed-off-by: Youquan Song <youquan.song@intel.com>
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
-rw-r--r-- | drivers/pci/dmar.c | 20 |
1 files changed, 5 insertions, 15 deletions
diff --git a/drivers/pci/dmar.c b/drivers/pci/dmar.c index 0f409e23631e..44d6c7081b8f 100644 --- a/drivers/pci/dmar.c +++ b/drivers/pci/dmar.c | |||
@@ -455,8 +455,8 @@ void __init detect_intel_iommu(void) | |||
455 | 455 | ||
456 | ret = early_dmar_detect(); | 456 | ret = early_dmar_detect(); |
457 | 457 | ||
458 | #ifdef CONFIG_DMAR | ||
459 | { | 458 | { |
459 | #ifdef CONFIG_INTR_REMAP | ||
460 | struct acpi_table_dmar *dmar; | 460 | struct acpi_table_dmar *dmar; |
461 | /* | 461 | /* |
462 | * for now we will disable dma-remapping when interrupt | 462 | * for now we will disable dma-remapping when interrupt |
@@ -465,28 +465,18 @@ void __init detect_intel_iommu(void) | |||
465 | * is added, we will not need this any more. | 465 | * is added, we will not need this any more. |
466 | */ | 466 | */ |
467 | dmar = (struct acpi_table_dmar *) dmar_tbl; | 467 | dmar = (struct acpi_table_dmar *) dmar_tbl; |
468 | if (ret && cpu_has_x2apic && dmar->flags & 0x1) { | 468 | if (ret && cpu_has_x2apic && dmar->flags & 0x1) |
469 | printk(KERN_INFO | 469 | printk(KERN_INFO |
470 | "Queued invalidation will be enabled to support " | 470 | "Queued invalidation will be enabled to support " |
471 | "x2apic and Intr-remapping.\n"); | 471 | "x2apic and Intr-remapping.\n"); |
472 | printk(KERN_INFO | 472 | #endif |
473 | "Disabling IOMMU detection, because of missing " | ||
474 | "queued invalidation support for IOTLB " | ||
475 | "invalidation\n"); | ||
476 | printk(KERN_INFO | ||
477 | "Use \"nox2apic\", if you want to use Intel " | ||
478 | " IOMMU for DMA-remapping and don't care about " | ||
479 | " x2apic support\n"); | ||
480 | |||
481 | dmar_disabled = 1; | ||
482 | return; | ||
483 | } | ||
484 | 473 | ||
474 | #ifdef CONFIG_DMAR | ||
485 | if (ret && !no_iommu && !iommu_detected && !swiotlb && | 475 | if (ret && !no_iommu && !iommu_detected && !swiotlb && |
486 | !dmar_disabled) | 476 | !dmar_disabled) |
487 | iommu_detected = 1; | 477 | iommu_detected = 1; |
488 | } | ||
489 | #endif | 478 | #endif |
479 | } | ||
490 | } | 480 | } |
491 | 481 | ||
492 | 482 | ||