Commit fa460b88 authored by Hiroshi DOYU's avatar Hiroshi DOYU

omap iommu: Insert a gap page between IOVMAs against override

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.
Signed-off-by: default avatarHiroshi DOYU <Hiroshi.DOYU@nokia.com>
Cc: David Cohen <david.cohen@nokia.com>
Cc: Sakari Ailus <Sakari.Ailus@nokia.com>
parent 347815fc
......@@ -287,16 +287,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",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment