From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41222) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Yj954-0005xa-Hq for qemu-devel@nongnu.org; Fri, 17 Apr 2015 12:25:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Yj94y-0000Yt-Pu for qemu-devel@nongnu.org; Fri, 17 Apr 2015 12:25:26 -0400 Received: from static.88-198-71-155.clients.your-server.de ([88.198.71.155]:60491 helo=socrates.bennee.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Yj94y-0000Yg-JC for qemu-devel@nongnu.org; Fri, 17 Apr 2015 12:25:20 -0400 References: <1428931324-4973-1-git-send-email-peter.maydell@linaro.org> <1428931324-4973-6-git-send-email-peter.maydell@linaro.org> <87iocug28r.fsf@linaro.org> From: Alex =?utf-8?Q?Benn=C3=A9e?= In-reply-to: Date: Fri, 17 Apr 2015 17:25:38 +0100 Message-ID: <87h9seg1rx.fsf@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Subject: Re: [Qemu-devel] [PATCH v2 05/14] exec.c: Convert subpage memory ops to _with_attrs List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Peter Maydell Cc: Peter Crosthwaite , Patch Tracking , "Edgar E. Iglesias" , QEMU Developers , Greg Bellows , Paolo Bonzini , Richard Henderson Peter Maydell writes: > On 17 April 2015 at 17:15, Alex Bennée wrote: >> >> Peter Maydell 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 >>> Reviewed-by: Paolo Bonzini >>> Reviewed-by: Edgar E. Iglesias >>> --- >>> 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). Ah yes, the jumping between patch and final tree confused me. Have a: Reviewed-by: Alex Bennée > > -- PMM -- Alex Bennée