diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86_64/kernel/aperture.c | 3 | ||||
-rw-r--r-- | arch/x86_64/kernel/io_apic.c | 3 | ||||
-rw-r--r-- | arch/x86_64/kernel/pci-gart.c | 2 | ||||
-rw-r--r-- | arch/x86_64/mm/init.c | 2 |
4 files changed, 6 insertions, 4 deletions
diff --git a/arch/x86_64/kernel/aperture.c b/arch/x86_64/kernel/aperture.c index c7f4fdd20f05..e4e2b7d01f89 100644 --- a/arch/x86_64/kernel/aperture.c +++ b/arch/x86_64/kernel/aperture.c | |||
@@ -23,6 +23,7 @@ | |||
23 | #include <asm/io.h> | 23 | #include <asm/io.h> |
24 | #include <asm/proto.h> | 24 | #include <asm/proto.h> |
25 | #include <asm/pci-direct.h> | 25 | #include <asm/pci-direct.h> |
26 | #include <asm/dma.h> | ||
26 | 27 | ||
27 | int iommu_aperture; | 28 | int iommu_aperture; |
28 | int iommu_aperture_disabled __initdata = 0; | 29 | int iommu_aperture_disabled __initdata = 0; |
@@ -247,7 +248,7 @@ void __init iommu_hole_init(void) | |||
247 | /* Got the aperture from the AGP bridge */ | 248 | /* Got the aperture from the AGP bridge */ |
248 | } else if (swiotlb && !valid_agp) { | 249 | } else if (swiotlb && !valid_agp) { |
249 | /* Do nothing */ | 250 | /* Do nothing */ |
250 | } else if ((!no_iommu && end_pfn >= 0xffffffff>>PAGE_SHIFT) || | 251 | } else if ((!no_iommu && end_pfn >= MAX_DMA32_PFN) || |
251 | force_iommu || | 252 | force_iommu || |
252 | valid_agp || | 253 | valid_agp || |
253 | fallback_aper_force) { | 254 | fallback_aper_force) { |
diff --git a/arch/x86_64/kernel/io_apic.c b/arch/x86_64/kernel/io_apic.c index bdc589924b10..83ea86e0633a 100644 --- a/arch/x86_64/kernel/io_apic.c +++ b/arch/x86_64/kernel/io_apic.c | |||
@@ -37,6 +37,7 @@ | |||
37 | #include <asm/proto.h> | 37 | #include <asm/proto.h> |
38 | #include <asm/mach_apic.h> | 38 | #include <asm/mach_apic.h> |
39 | #include <asm/acpi.h> | 39 | #include <asm/acpi.h> |
40 | #include <asm/dma.h> | ||
40 | 41 | ||
41 | #define __apicdebuginit __init | 42 | #define __apicdebuginit __init |
42 | 43 | ||
@@ -281,7 +282,7 @@ void __init check_ioapic(void) | |||
281 | switch (vendor) { | 282 | switch (vendor) { |
282 | case PCI_VENDOR_ID_VIA: | 283 | case PCI_VENDOR_ID_VIA: |
283 | #ifdef CONFIG_GART_IOMMU | 284 | #ifdef CONFIG_GART_IOMMU |
284 | if ((end_pfn >= (0xffffffff>>PAGE_SHIFT) || | 285 | if ((end_pfn > MAX_DMA32_PFN || |
285 | force_iommu) && | 286 | force_iommu) && |
286 | !iommu_aperture_allowed) { | 287 | !iommu_aperture_allowed) { |
287 | printk(KERN_INFO | 288 | printk(KERN_INFO |
diff --git a/arch/x86_64/kernel/pci-gart.c b/arch/x86_64/kernel/pci-gart.c index 2b865c90b041..116e00f1bb7b 100644 --- a/arch/x86_64/kernel/pci-gart.c +++ b/arch/x86_64/kernel/pci-gart.c | |||
@@ -804,7 +804,7 @@ static int __init pci_iommu_init(void) | |||
804 | } | 804 | } |
805 | 805 | ||
806 | if (no_iommu || | 806 | if (no_iommu || |
807 | (!force_iommu && end_pfn < 0xffffffff>>PAGE_SHIFT) || | 807 | (!force_iommu && (end_pfn-1) < 0xffffffff>>PAGE_SHIFT) || |
808 | !iommu_aperture || | 808 | !iommu_aperture || |
809 | (no_agp && init_k8_gatt(&info) < 0)) { | 809 | (no_agp && init_k8_gatt(&info) < 0)) { |
810 | printk(KERN_INFO "PCI-DMA: Disabling IOMMU.\n"); | 810 | printk(KERN_INFO "PCI-DMA: Disabling IOMMU.\n"); |
diff --git a/arch/x86_64/mm/init.c b/arch/x86_64/mm/init.c index 1faae5fc1c01..5337ca0ea7b9 100644 --- a/arch/x86_64/mm/init.c +++ b/arch/x86_64/mm/init.c | |||
@@ -424,7 +424,7 @@ void __init mem_init(void) | |||
424 | 424 | ||
425 | #ifdef CONFIG_SWIOTLB | 425 | #ifdef CONFIG_SWIOTLB |
426 | if (!iommu_aperture && | 426 | if (!iommu_aperture && |
427 | (end_pfn >= 0xffffffff>>PAGE_SHIFT || force_iommu)) | 427 | ((end_pfn-1) >= 0xffffffff>>PAGE_SHIFT || force_iommu)) |
428 | swiotlb = 1; | 428 | swiotlb = 1; |
429 | if (swiotlb) | 429 | if (swiotlb) |
430 | swiotlb_init(); | 430 | swiotlb_init(); |