On 17 April 2015 at 17:15, Alex Bennée <alex.ben...@linaro.org> wrote: > > Peter Maydell <peter.mayd...@linaro.org> writes: > >> Convert the subpage memory ops to _with_attrs; this will allow >> us to pass the attributes through to the underlying access >> functions. (Nothing uses the attributes yet.) >> >> Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> >> Reviewed-by: Paolo Bonzini <pbonz...@redhat.com> >> Reviewed-by: Edgar E. Iglesias <edgar.igles...@xilinx.com> >> --- >> exec.c | 33 +++++++++++++++++++++------------ >> 1 file changed, 21 insertions(+), 12 deletions(-) >> >> diff --git a/exec.c b/exec.c >> index 34dafd2..bba6f26 100644 >> --- a/exec.c >> +++ b/exec.c >> @@ -1941,8 +1941,8 @@ static const MemoryRegionOps watch_mem_ops = { >> .endianness = DEVICE_NATIVE_ENDIAN, >> }; >> >> -static uint64_t subpage_read(void *opaque, hwaddr addr, >> - unsigned len) >> +static MemTxResult subpage_read(void *opaque, hwaddr addr, uint64_t *data, >> + unsigned len, MemTxAttrs attrs) >> { >> subpage_t *subpage = opaque; >> uint8_t buf[8]; >> @@ -1951,23 +1951,29 @@ static uint64_t subpage_read(void *opaque, hwaddr >> addr, >> printf("%s: subpage %p len %u addr " TARGET_FMT_plx "\n", __func__, >> subpage, len, addr); >> #endif >> - address_space_read(subpage->as, addr + subpage->base, buf, len); >> + if (address_space_read(subpage->as, addr + subpage->base, buf, len)) { >> + return MEMTX_DECODE_ERROR; >> + } > > Doesn't this mean we loose potential other error bits that are returned > by address_space_read()? Would MEMTX_ERROR ever potentially be returned?
At this point in the series address_space_read() returns a bool. In the next patch we change the return type of address_space_read() and this code is also changed to match (ie it returns the error value). -- PMM