From: Hiroshi DOYU <[email protected]>

Inserting a gap page between IOVMAs could detect an override on other
IOVMA with iommu fault. This was originally suggested by Sakari Ailus
and based on the work and comment by David Cohen.

CC: David Cohen <[email protected]>
CC: Sakari Ailus <[email protected]>
Signed-off-by: Hiroshi DOYU <[email protected]>
---
 arch/arm/plat-omap/iovmm.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/arm/plat-omap/iovmm.c b/arch/arm/plat-omap/iovmm.c
index 111fbca..b280766 100644
--- a/arch/arm/plat-omap/iovmm.c
+++ b/arch/arm/plat-omap/iovmm.c
@@ -255,16 +255,16 @@ static struct iovm_struct *alloc_iovm_area(struct iommu 
*obj, u32 da,
        prev_end = 0;
        list_for_each_entry(tmp, &obj->mmap, list) {
 
-               if ((prev_end <= start) && (start + bytes < tmp->da_start))
+               if ((prev_end < start) && (start + bytes < tmp->da_start))
                        goto found;
 
                if (flags & IOVMF_DA_ANON)
-                       start = roundup(tmp->da_end, alignement);
+                       start = roundup(tmp->da_end + 1, alignement);
 
                prev_end = tmp->da_end;
        }
 
-       if ((start >= prev_end) && (ULONG_MAX - start >= bytes))
+       if ((start > prev_end) && (ULONG_MAX - start >= bytes))
                goto found;
 
        dev_dbg(obj->dev, "%s: no space to fit %08x(%x) flags: %08x\n",
-- 
1.7.1.rc1

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to