Message ID | 1372438702-20491-9-git-send-email-pbonzini@redhat.com |
---|---|
State | New |
Headers | show |
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 <pbonzini@redhat.com> > --- > 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.kiszka@siemens.com> Jan
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); 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,
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 <pbonzini@redhat.com> --- cputlb.c | 11 +++++++++++ exec.c | 18 ++++-------------- include/exec/cpu-common.h | 1 - 3 files changed, 15 insertions(+), 15 deletions(-)