From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52961) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UtivO-0001gY-2z for qemu-devel@nongnu.org; Mon, 01 Jul 2013 14:34:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UtivM-0005Q0-FJ for qemu-devel@nongnu.org; Mon, 01 Jul 2013 14:34:06 -0400 Received: from thoth.sbs.de ([192.35.17.2]:15391) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UtivM-0005PY-5d for qemu-devel@nongnu.org; Mon, 01 Jul 2013 14:34:04 -0400 Message-ID: <51D1CB9A.2000500@siemens.com> Date: Mon, 01 Jul 2013 20:34:02 +0200 From: Jan Kiszka MIME-Version: 1.0 References: <1372438702-20491-1-git-send-email-pbonzini@redhat.com> <1372438702-20491-9-git-send-email-pbonzini@redhat.com> In-Reply-To: <1372438702-20491-9-git-send-email-pbonzini@redhat.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v2 08/11] exec: move qemu_ram_addr_from_host_nofail to cputlb.c List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini Cc: "peter.maydell@linaro.org" , "qemu-devel@nongnu.org" On 2013-06-28 18:58, Paolo Bonzini wrote: > After the next patch it would not be used elsewhere anyway. Also, > the _nofail and the standard versions of this function return different > things, which is confusing. Removing the function from the public headers > limits the confusion. > > Signed-off-by: Paolo Bonzini > --- > cputlb.c | 11 +++++++++++ > exec.c | 18 ++++-------------- > include/exec/cpu-common.h | 1 - > 3 files changed, 15 insertions(+), 15 deletions(-) > > diff --git a/cputlb.c b/cputlb.c > index 947f17c..b716bbe 100644 > --- a/cputlb.c > +++ b/cputlb.c > @@ -158,6 +158,17 @@ void tlb_reset_dirty_range(CPUTLBEntry *tlb_entry, uintptr_t start, > } > } > > +static inline ram_addr_t qemu_ram_addr_from_host_nofail(void *ptr) > +{ > + ram_addr_t ram_addr; > + > + if (qemu_ram_addr_from_host(ptr, &ram_addr)) { > + fprintf(stderr, "Bad ram pointer %p\n", ptr); > + abort(); > + } > + return ram_addr; > +} > + > static inline void tlb_update_dirty(CPUTLBEntry *tlb_entry) > { > ram_addr_t ram_addr; > diff --git a/exec.c b/exec.c > index f3d7b18..aa76366 100644 > --- a/exec.c > +++ b/exec.c > @@ -1398,6 +1398,8 @@ static void *qemu_ram_ptr_length(ram_addr_t addr, ram_addr_t *size) > } > } > > +/* Some of the softmmu routines need to translate from a host pointer > + (typically a TLB entry) back to a ram offset. */ > int qemu_ram_addr_from_host(void *ptr, ram_addr_t *ram_addr) > { > RAMBlock *block; > @@ -1430,19 +1432,6 @@ found: > return 0; > } > > -/* Some of the softmmu routines need to translate from a host pointer > - (typically a TLB entry) back to a ram offset. */ > -ram_addr_t qemu_ram_addr_from_host_nofail(void *ptr) > -{ > - ram_addr_t ram_addr; > - > - if (qemu_ram_addr_from_host(ptr, &ram_addr)) { > - fprintf(stderr, "Bad ram pointer %p\n", ptr); > - abort(); > - } > - return ram_addr; > -} > - > static void notdirty_mem_write(void *opaque, hwaddr ram_addr, > uint64_t val, unsigned size) > { > @@ -2129,7 +2118,8 @@ void address_space_unmap(AddressSpace *as, void *buffer, hwaddr len, > { > if (buffer != bounce.buffer) { > if (is_write) { > - ram_addr_t addr1 = qemu_ram_addr_from_host_nofail(buffer); > + ram_addr_t addr1; > + qemu_ram_addr_from_host(buffer, &addr1); assert() that it succeeds? There remains the risk someone passes an invalid buffer address. Ah, wait, you'll do this in patch 11. Well, OK. > while (access_len) { > unsigned l; > l = TARGET_PAGE_SIZE; > diff --git a/include/exec/cpu-common.h b/include/exec/cpu-common.h > index e061e21..8063ba2 100644 > --- a/include/exec/cpu-common.h > +++ b/include/exec/cpu-common.h > @@ -51,7 +51,6 @@ typedef uint32_t CPUReadMemoryFunc(void *opaque, hwaddr addr); > void qemu_ram_remap(ram_addr_t addr, ram_addr_t length); > /* This should not be used by devices. */ > int qemu_ram_addr_from_host(void *ptr, ram_addr_t *ram_addr); > -ram_addr_t qemu_ram_addr_from_host_nofail(void *ptr); > void qemu_ram_set_idstr(ram_addr_t addr, const char *name, DeviceState *dev); > > void cpu_physical_memory_rw(hwaddr addr, uint8_t *buf, > Reviewed-by: Jan Kiszka Jan -- Siemens AG, Corporate Technology, CT RTC ITP SES-DE Corporate Competence Center Embedded Linux