diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-12-05 12:49:07 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-12-05 12:49:07 -0500 |
commit | 7b626acb8f983eb83b396ab96cc24b18d635d487 (patch) | |
tree | 8c3320191311e6186d3aa722f1acd12acd47ece8 /drivers | |
parent | 1ebb275afcf5a47092e995541d6c604eef96062a (diff) | |
parent | 4528752f49c1f4025473d12bc5fa9181085c3f22 (diff) |
Merge branch 'core-iommu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'core-iommu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (63 commits)
x86, Calgary IOMMU quirk: Find nearest matching Calgary while walking up the PCI tree
x86/amd-iommu: Remove amd_iommu_pd_table
x86/amd-iommu: Move reset_iommu_command_buffer out of locked code
x86/amd-iommu: Cleanup DTE flushing code
x86/amd-iommu: Introduce iommu_flush_device() function
x86/amd-iommu: Cleanup attach/detach_device code
x86/amd-iommu: Keep devices per domain in a list
x86/amd-iommu: Add device bind reference counting
x86/amd-iommu: Use dev->arch->iommu to store iommu related information
x86/amd-iommu: Remove support for domain sharing
x86/amd-iommu: Rearrange dma_ops related functions
x86/amd-iommu: Move some pte allocation functions in the right section
x86/amd-iommu: Remove iommu parameter from dma_ops_domain_alloc
x86/amd-iommu: Use get_device_id and check_device where appropriate
x86/amd-iommu: Move find_protection_domain to helper functions
x86/amd-iommu: Simplify get_device_resources()
x86/amd-iommu: Let domain_for_device handle aliases
x86/amd-iommu: Remove iommu specific handling from dma_ops path
x86/amd-iommu: Remove iommu parameter from __(un)map_single
x86/amd-iommu: Make alloc_new_range aware of multiple IOMMUs
...
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/char/agp/Kconfig | 3 | ||||
-rw-r--r-- | drivers/pci/dmar.c | 7 | ||||
-rw-r--r-- | drivers/pci/intel-iommu.c | 6 |
3 files changed, 10 insertions, 6 deletions
diff --git a/drivers/char/agp/Kconfig b/drivers/char/agp/Kconfig index ccb1fa89de29..2fb3a480f6b0 100644 --- a/drivers/char/agp/Kconfig +++ b/drivers/char/agp/Kconfig | |||
@@ -56,9 +56,8 @@ config AGP_AMD | |||
56 | X on AMD Irongate, 761, and 762 chipsets. | 56 | X on AMD Irongate, 761, and 762 chipsets. |
57 | 57 | ||
58 | config AGP_AMD64 | 58 | config AGP_AMD64 |
59 | tristate "AMD Opteron/Athlon64 on-CPU GART support" if !GART_IOMMU | 59 | tristate "AMD Opteron/Athlon64 on-CPU GART support" |
60 | depends on AGP && X86 | 60 | depends on AGP && X86 |
61 | default y if GART_IOMMU | ||
62 | help | 61 | help |
63 | This option gives you AGP support for the GLX component of | 62 | This option gives you AGP support for the GLX component of |
64 | X using the on-CPU northbridge of the AMD Athlon64/Opteron CPUs. | 63 | X using the on-CPU northbridge of the AMD Athlon64/Opteron CPUs. |
diff --git a/drivers/pci/dmar.c b/drivers/pci/dmar.c index b952ebc7a78b..416f6ac65b76 100644 --- a/drivers/pci/dmar.c +++ b/drivers/pci/dmar.c | |||
@@ -645,10 +645,13 @@ void __init detect_intel_iommu(void) | |||
645 | "x2apic and Intr-remapping.\n"); | 645 | "x2apic and Intr-remapping.\n"); |
646 | #endif | 646 | #endif |
647 | #ifdef CONFIG_DMAR | 647 | #ifdef CONFIG_DMAR |
648 | if (ret && !no_iommu && !iommu_detected && !swiotlb && | 648 | if (ret && !no_iommu && !iommu_detected && !dmar_disabled) |
649 | !dmar_disabled) | ||
650 | iommu_detected = 1; | 649 | iommu_detected = 1; |
651 | #endif | 650 | #endif |
651 | #ifdef CONFIG_X86 | ||
652 | if (ret) | ||
653 | x86_init.iommu.iommu_init = intel_iommu_init; | ||
654 | #endif | ||
652 | } | 655 | } |
653 | early_acpi_os_unmap_memory(dmar_tbl, dmar_tbl_size); | 656 | early_acpi_os_unmap_memory(dmar_tbl, dmar_tbl_size); |
654 | dmar_tbl = NULL; | 657 | dmar_tbl = NULL; |
diff --git a/drivers/pci/intel-iommu.c b/drivers/pci/intel-iommu.c index 1840a0578a42..9261327b49f3 100644 --- a/drivers/pci/intel-iommu.c +++ b/drivers/pci/intel-iommu.c | |||
@@ -3266,7 +3266,7 @@ int __init intel_iommu_init(void) | |||
3266 | * Check the need for DMA-remapping initialization now. | 3266 | * Check the need for DMA-remapping initialization now. |
3267 | * Above initialization will also be used by Interrupt-remapping. | 3267 | * Above initialization will also be used by Interrupt-remapping. |
3268 | */ | 3268 | */ |
3269 | if (no_iommu || swiotlb || dmar_disabled) | 3269 | if (no_iommu || dmar_disabled) |
3270 | return -ENODEV; | 3270 | return -ENODEV; |
3271 | 3271 | ||
3272 | iommu_init_mempool(); | 3272 | iommu_init_mempool(); |
@@ -3287,7 +3287,9 @@ int __init intel_iommu_init(void) | |||
3287 | "PCI-DMA: Intel(R) Virtualization Technology for Directed I/O\n"); | 3287 | "PCI-DMA: Intel(R) Virtualization Technology for Directed I/O\n"); |
3288 | 3288 | ||
3289 | init_timer(&unmap_timer); | 3289 | init_timer(&unmap_timer); |
3290 | force_iommu = 1; | 3290 | #ifdef CONFIG_SWIOTLB |
3291 | swiotlb = 0; | ||
3292 | #endif | ||
3291 | dma_ops = &intel_dma_ops; | 3293 | dma_ops = &intel_dma_ops; |
3292 | 3294 | ||
3293 | init_iommu_sysfs(); | 3295 | init_iommu_sysfs(); |