diff options
author | Andi Kleen <ak@suse.de> | 2006-01-11 16:44:27 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-01-11 22:04:54 -0500 |
commit | ca8642f606ce22de23bae08a5044067f98de855b (patch) | |
tree | 143dd169cbba9d58629ca74d618cbfa41964c2f8 /arch/x86_64/kernel/io_apic.c | |
parent | d25bf7e5fe73b5b6d2246ab0be08ae35d718456b (diff) |
[PATCH] x86_64: Fix off by one in IOMMU check
Fix off by one when checking if the machine has enougn memory to need IOMMU
This caused the IOMMUs to be needlessly enabled for mem=4G
Based on a patch from Jon Mason
Signed-off-by: jdmason@us.ibm.com
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/x86_64/kernel/io_apic.c')
-rw-r--r-- | arch/x86_64/kernel/io_apic.c | 3 |
1 files changed, 2 insertions, 1 deletions
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 |