Skip to content

Commit

Permalink
OMAP: iovmm: no gap checking for fixed address
Browse files Browse the repository at this point in the history
If some fixed da address is wanted to be mapped and the page
is freed but it is used as gap, the mapping will fail.
This patch is fixing that and olny keeps the gap for
not fixed address.

Signed-off-by: Fernando Guzman Lugo <x0095840@ti.com>
Acked-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com>
  • Loading branch information
Guzman Lugo, Fernando authored and Hari Kanigeri committed Dec 15, 2010
1 parent ff0fba0 commit ba6e1f4
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions arch/arm/plat-omap/iovmm.c
Original file line number Diff line number Diff line change
Expand Up @@ -289,10 +289,10 @@ 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)
if (prev_end > start)
break;

if (start + bytes < tmp->da_start)
if (start + bytes <= tmp->da_start)
goto found;

if (flags & IOVMF_DA_ANON)
Expand All @@ -301,7 +301,7 @@ static struct iovm_struct *alloc_iovm_area(struct iommu *obj, u32 da,
prev_end = tmp->da_end;
}

if ((start > prev_end) && (ULONG_MAX - start >= bytes))
if ((start >= prev_end) && (ULONG_MAX - start + 1 >= bytes))
goto found;

dev_dbg(obj->dev, "%s: no space to fit %08x(%x) flags: %08x\n",
Expand Down

0 comments on commit ba6e1f4

Please sign in to comment.