Skip to content

Commit

Permalink
Make flatview_access_valid() take a MemTxAttrs argument
Browse files Browse the repository at this point in the history
As part of plumbing MemTxAttrs down to the IOMMU translate method,
add MemTxAttrs as an argument to flatview_access_valid().
Its callers now all have an attrs value to hand, so we can
correct our earlier temporary use of MEMTXATTRS_UNSPECIFIED.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20180521140402.23318-10-peter.maydell@linaro.org
  • Loading branch information
pm215 committed May 31, 2018
1 parent 8372d38 commit eace72b
Showing 1 changed file with 5 additions and 7 deletions.
12 changes: 5 additions & 7 deletions exec.c
Expand Up @@ -2697,7 +2697,7 @@ static MemTxResult flatview_read(FlatView *fv, hwaddr addr,
static MemTxResult flatview_write(FlatView *fv, hwaddr addr, MemTxAttrs attrs,
const uint8_t *buf, int len);
static bool flatview_access_valid(FlatView *fv, hwaddr addr, int len,
bool is_write);
bool is_write, MemTxAttrs attrs);

static MemTxResult subpage_read(void *opaque, hwaddr addr, uint64_t *data,
unsigned len, MemTxAttrs attrs)
Expand Down Expand Up @@ -2773,7 +2773,7 @@ static bool subpage_accepts(void *opaque, hwaddr addr,
#endif

return flatview_access_valid(subpage->fv, addr + subpage->base,
len, is_write);
len, is_write, attrs);
}

static const MemoryRegionOps subpage_ops = {
Expand Down Expand Up @@ -3461,7 +3461,7 @@ static void cpu_notify_map_clients(void)
}

static bool flatview_access_valid(FlatView *fv, hwaddr addr, int len,
bool is_write)
bool is_write, MemTxAttrs attrs)
{
MemoryRegion *mr;
hwaddr l, xlat;
Expand All @@ -3471,9 +3471,7 @@ static bool flatview_access_valid(FlatView *fv, hwaddr addr, int len,
mr = flatview_translate(fv, addr, &xlat, &l, is_write);
if (!memory_access_is_direct(mr, is_write)) {
l = memory_access_size(mr, l, addr);
/* When our callers all have attrs we'll pass them through here */
if (!memory_region_access_valid(mr, xlat, l, is_write,
MEMTXATTRS_UNSPECIFIED)) {
if (!memory_region_access_valid(mr, xlat, l, is_write, attrs)) {
return false;
}
}
Expand All @@ -3493,7 +3491,7 @@ bool address_space_access_valid(AddressSpace *as, hwaddr addr,

rcu_read_lock();
fv = address_space_to_flatview(as);
result = flatview_access_valid(fv, addr, len, is_write);
result = flatview_access_valid(fv, addr, len, is_write, attrs);
rcu_read_unlock();
return result;
}
Expand Down

0 comments on commit eace72b

Please sign in to comment.