migration/rdma: clang compilation fix
Configuring QEMU with: ../configure --cc=clang --enable-rdma Leads to compilation error: CC migration/rdma.o CC migration/block.o qemu/migration/rdma.c:3615:58: error: taking address of packed member 'rkey' of class or structure 'RDMARegisterResult' may result in an unaligned pointer value [-Werror,-Waddress-of-packed-member] (uintptr_t)host_addr, NULL, ®_result->rkey, ^~~~~~~~~~~~~~~~ Fix it by using a temp local variable. Signed-off-by: Marcel Apfelbaum <marcel.apfelbaum@gmail.com> Message-Id: <20190304184923.24215-1-marcel.apfelbaum@gmail.com> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
This commit is contained in:
parent
892ae715b6
commit
9589e76301
@ -3613,13 +3613,16 @@ static int qemu_rdma_registration_handle(QEMUFile *f, void *opaque)
|
||||
}
|
||||
chunk_start = ram_chunk_start(block, chunk);
|
||||
chunk_end = ram_chunk_end(block, chunk + reg->chunks);
|
||||
/* avoid "-Waddress-of-packed-member" warning */
|
||||
uint32_t tmp_rkey = 0;
|
||||
if (qemu_rdma_register_and_get_keys(rdma, block,
|
||||
(uintptr_t)host_addr, NULL, ®_result->rkey,
|
||||
(uintptr_t)host_addr, NULL, &tmp_rkey,
|
||||
chunk, chunk_start, chunk_end)) {
|
||||
error_report("cannot get rkey");
|
||||
ret = -EINVAL;
|
||||
goto out;
|
||||
}
|
||||
reg_result->rkey = tmp_rkey;
|
||||
|
||||
reg_result->host_addr = (uintptr_t)block->local_host_addr;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user