diff options
-rw-r--r-- | 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 65c6d1ff7237..5afe0135b979 100644 --- a/arch/arm/plat-omap/iovmm.c +++ b/arch/arm/plat-omap/iovmm.c | |||
@@ -287,16 +287,16 @@ static struct iovm_struct *alloc_iovm_area(struct iommu *obj, u32 da, | |||
287 | prev_end = 0; | 287 | prev_end = 0; |
288 | list_for_each_entry(tmp, &obj->mmap, list) { | 288 | list_for_each_entry(tmp, &obj->mmap, list) { |
289 | 289 | ||
290 | if ((prev_end <= start) && (start + bytes < tmp->da_start)) | 290 | if ((prev_end < start) && (start + bytes < tmp->da_start)) |
291 | goto found; | 291 | goto found; |
292 | 292 | ||
293 | if (flags & IOVMF_DA_ANON) | 293 | if (flags & IOVMF_DA_ANON) |
294 | start = roundup(tmp->da_end, alignement); | 294 | start = roundup(tmp->da_end + 1, alignement); |
295 | 295 | ||
296 | prev_end = tmp->da_end; | 296 | prev_end = tmp->da_end; |
297 | } | 297 | } |
298 | 298 | ||
299 | if ((start >= prev_end) && (ULONG_MAX - start >= bytes)) | 299 | if ((start > prev_end) && (ULONG_MAX - start >= bytes)) |
300 | goto found; | 300 | goto found; |
301 | 301 | ||
302 | dev_dbg(obj->dev, "%s: no space to fit %08x(%x) flags: %08x\n", | 302 | dev_dbg(obj->dev, "%s: no space to fit %08x(%x) flags: %08x\n", |