aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/x86_64/kernel/aperture.c3
-rw-r--r--arch/x86_64/kernel/io_apic.c3
-rw-r--r--arch/x86_64/kernel/pci-gart.c2
-rw-r--r--arch/x86_64/mm/init.c2
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
27int iommu_aperture; 28int iommu_aperture;
28int iommu_aperture_disabled __initdata = 0; 29int 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();