Hi On Thu, May 26, 2016 at 10:49 AM, Paolo Bonzini <pbonz...@redhat.com> wrote: > Of the two callers, one does not use it, and the other can compute > it itself based on the other output argument (offset) and the RAMBlock. > > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > --- > exec.c | 13 ++++++------- > include/exec/cpu-common.h | 2 +- > migration/postcopy-ram.c | 3 +-- > 3 files changed, 8 insertions(+), 10 deletions(-) > > diff --git a/exec.c b/exec.c > index 3330e7d..65bad53 100644 > --- a/exec.c > +++ b/exec.c > @@ -1897,16 +1897,16 @@ static void *qemu_ram_ptr_length(RAMBlock *ram_block, > ram_addr_t addr, > * ram_addr_t. > */ > RAMBlock *qemu_ram_block_from_host(void *ptr, bool round_offset, > - ram_addr_t *ram_addr, > ram_addr_t *offset) > { > RAMBlock *block; > uint8_t *host = ptr; > > if (xen_enabled()) { > + ram_addr_t ram_addr; > rcu_read_lock(); > - *ram_addr = xen_ram_addr_from_mapcache(ptr); > - block = qemu_get_ram_block(*ram_addr); > + ram_addr = xen_ram_addr_from_mapcache(ptr); > + block = qemu_get_ram_block(ram_addr); > if (block) { > *offset = (host - block->host); > } > @@ -1938,7 +1938,6 @@ found: > if (round_offset) { > *offset &= TARGET_PAGE_MASK; > } > - *ram_addr = block->offset + *offset; > rcu_read_unlock(); > return block; > } > @@ -1968,10 +1967,10 @@ RAMBlock *qemu_ram_block_by_name(const char *name) > MemoryRegion *qemu_ram_addr_from_host(void *ptr, ram_addr_t *ram_addr) > { > RAMBlock *block; > - ram_addr_t offset; /* Not used */ > - > - block = qemu_ram_block_from_host(ptr, false, ram_addr, &offset); > + ram_addr_t offset; > > + block = qemu_ram_block_from_host(ptr, false, &offset); > + *ram_addr = block->offset + offset; > if (!block) { > return NULL; > } > diff --git a/include/exec/cpu-common.h b/include/exec/cpu-common.h > index a2c3b92..fc609ad 100644 > --- a/include/exec/cpu-common.h > +++ b/include/exec/cpu-common.h > @@ -60,7 +60,7 @@ void qemu_ram_remap(ram_addr_t addr, ram_addr_t length); > MemoryRegion *qemu_ram_addr_from_host(void *ptr, ram_addr_t *ram_addr); > RAMBlock *qemu_ram_block_by_name(const char *name); > RAMBlock *qemu_ram_block_from_host(void *ptr, bool round_offset, > - ram_addr_t *ram_addr, ram_addr_t *offset); > + ram_addr_t *offset); > void qemu_ram_set_idstr(RAMBlock *block, const char *name, DeviceState *dev); > void qemu_ram_unset_idstr(RAMBlock *block); > const char *qemu_ram_get_idstr(RAMBlock *rb); > diff --git a/migration/postcopy-ram.c b/migration/postcopy-ram.c > index fbd0064..cf7dcd2 100644 > --- a/migration/postcopy-ram.c > +++ b/migration/postcopy-ram.c > @@ -407,7 +407,6 @@ static void *postcopy_ram_fault_thread(void *opaque) > > while (true) { > ram_addr_t rb_offset; > - ram_addr_t in_raspace; > struct pollfd pfd[2]; > > /* > @@ -459,7 +458,7 @@ static void *postcopy_ram_fault_thread(void *opaque) > > rb = qemu_ram_block_from_host( > (void *)(uintptr_t)msg.arg.pagefault.address, > - true, &in_raspace, &rb_offset); > + true, &rb_offset); > if (!rb) { > error_report("postcopy_ram_fault_thread: Fault outside guest: %" > PRIx64, (uint64_t)msg.arg.pagefault.address); > -- > 2.5.5 > > >
Reviewed-by: Marc-André Lureau <marcandre.lur...@redhat.com> -- Marc-André Lureau