Message ID | 1404495717-4239-2-git-send-email-dgilbert@redhat.com |
---|---|
State | New |
Headers | show |
On 07/04/2014 11:41 AM, Dr. David Alan Gilbert (git) wrote: > From: "Dr. David Alan Gilbert" <dgilbert@redhat.com> > > check the return value of the function it calls and error if it's none-0 > Fixup qemu_rdma_init_one_block that is the only current caller, > and __qemu_rdma_add_block the only function it calls using it. As long as you are at it, is it worth renaming the use of __qemu prefix in a function name? That namespace is reserved for the compiler/libc, and we shouldn't be stomping on it. Probably best as a separate patch. > > Pass the name of the ramblock to the function; helps in debugging. > > Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> > --- > exec.c | 10 ++++++++-- > include/exec/cpu-common.h | 4 ++-- > migration-rdma.c | 4 ++-- > 3 files changed, 12 insertions(+), 6 deletions(-) Reviewed-by: Eric Blake <eblake@redhat.com>
* Eric Blake (eblake@redhat.com) wrote: > On 07/04/2014 11:41 AM, Dr. David Alan Gilbert (git) wrote: > > From: "Dr. David Alan Gilbert" <dgilbert@redhat.com> > > > > check the return value of the function it calls and error if it's none-0 > > Fixup qemu_rdma_init_one_block that is the only current caller, > > and __qemu_rdma_add_block the only function it calls using it. > > As long as you are at it, is it worth renaming the use of __qemu prefix > in a function name? That namespace is reserved for the compiler/libc, > and we shouldn't be stomping on it. Probably best as a separate patch. Yeh it sounds separate, but worth doing but this was getting a large enough set of patches already. Dave > > > > > Pass the name of the ramblock to the function; helps in debugging. > > > > Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> > > --- > > exec.c | 10 ++++++++-- > > include/exec/cpu-common.h | 4 ++-- > > migration-rdma.c | 4 ++-- > > 3 files changed, 12 insertions(+), 6 deletions(-) > > Reviewed-by: Eric Blake <eblake@redhat.com> > > -- > Eric Blake eblake redhat com +1-919-301-3266 > Libvirt virtualization library http://libvirt.org > -- Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
diff --git a/exec.c b/exec.c index 5a2a25e..a9ad052 100644 --- a/exec.c +++ b/exec.c @@ -2786,12 +2786,18 @@ bool cpu_physical_memory_is_io(hwaddr phys_addr) memory_region_is_romd(mr)); } -void qemu_ram_foreach_block(RAMBlockIterFunc func, void *opaque) +int qemu_ram_foreach_block(RAMBlockIterFunc func, void *opaque) { RAMBlock *block; + int ret; QTAILQ_FOREACH(block, &ram_list.blocks, next) { - func(block->host, block->offset, block->length, opaque); + ret = func(block->idstr, block->host, block->offset, block->length, + opaque); + if (ret) { + return ret; + } } + return 0; } #endif diff --git a/include/exec/cpu-common.h b/include/exec/cpu-common.h index e3ec4c8..8042f50 100644 --- a/include/exec/cpu-common.h +++ b/include/exec/cpu-common.h @@ -118,10 +118,10 @@ void cpu_flush_icache_range(hwaddr start, int len); extern struct MemoryRegion io_mem_rom; extern struct MemoryRegion io_mem_notdirty; -typedef void (RAMBlockIterFunc)(void *host_addr, +typedef int (RAMBlockIterFunc)(const char *block_name, void *host_addr, ram_addr_t offset, ram_addr_t length, void *opaque); -void qemu_ram_foreach_block(RAMBlockIterFunc func, void *opaque); +int qemu_ram_foreach_block(RAMBlockIterFunc func, void *opaque); #endif diff --git a/migration-rdma.c b/migration-rdma.c index d99812c..666c052 100644 --- a/migration-rdma.c +++ b/migration-rdma.c @@ -595,10 +595,10 @@ static int __qemu_rdma_add_block(RDMAContext *rdma, void *host_addr, * in advanced before the migration starts. This tells us where the RAM blocks * are so that we can register them individually. */ -static void qemu_rdma_init_one_block(void *host_addr, +static int qemu_rdma_init_one_block(const char *block_name, void *host_addr, ram_addr_t block_offset, ram_addr_t length, void *opaque) { - __qemu_rdma_add_block(opaque, host_addr, block_offset, length); + return __qemu_rdma_add_block(opaque, host_addr, block_offset, length); } /*