[PATCH] x86-64: Fix off by one error in IOMMU boundary checking
authorAndi Kleen <ak@suse.de>
Tue, 13 Feb 2007 12:26:24 +0000 (13:26 +0100)
committerAndi Kleen <andi@basil.nowhere.org>
Tue, 13 Feb 2007 12:26:24 +0000 (13:26 +0100)
Should be harmless because there is normally no memory there, but
technically it was incorrect.

Pointed out by Leo Duran

Signed-off-by: Andi Kleen <ak@suse.de>
arch/x86_64/kernel/pci-gart.c

index fc1960f1f243982f8ecd6746ce0bddb8828ab633..030eb3753358146c207f99864225cd88020137ba 100644 (file)
@@ -185,7 +185,7 @@ static void iommu_full(struct device *dev, size_t size, int dir)
 static inline int need_iommu(struct device *dev, unsigned long addr, size_t size)
 { 
        u64 mask = *dev->dma_mask;
-       int high = addr + size >= mask;
+       int high = addr + size > mask;
        int mmu = high;
        if (force_iommu) 
                mmu = 1; 
@@ -195,7 +195,7 @@ static inline int need_iommu(struct device *dev, unsigned long addr, size_t size
 static inline int nonforced_iommu(struct device *dev, unsigned long addr, size_t size)
 { 
        u64 mask = *dev->dma_mask;
-       int high = addr + size >= mask;
+       int high = addr + size > mask;
        int mmu = high;
        return mmu; 
 }