[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-trivial] [PULL 06/47] migration/rdma: clean up qemu_rdma_dest_
From: |
Michael Tokarev |
Subject: |
Re: [Qemu-trivial] [PULL 06/47] migration/rdma: clean up qemu_rdma_dest_init a bit |
Date: |
Wed, 04 Mar 2015 20:11:25 +0300 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.4.0 |
I'm terrible sorry for this -- I forgot to remove this patch
from the trivial-patches queue. Should I re-do the pull
request?
04.03.2015 20:06, Michael Tokarev wrote:
> Do not check for rdma->host being empty twice. This removes a large
> "if" block, so code indentation is changed. While at it, remove an
> ugly goto from the loop, replacing it with a cleaner if logic. And
> finally, there's no need to initialize `ret' variable since is always
> has a value.
>
> Signed-off-by: Michael Tokarev <address@hidden>
> Reviewed-by: Dr. David Alan Gilbert <address@hidden>
> ---
> migration/rdma.c | 51 ++++++++++++++++++++++-----------------------------
> 1 file changed, 22 insertions(+), 29 deletions(-)
>
> diff --git a/migration/rdma.c b/migration/rdma.c
> index 6bee30c..a7bca91 100644
> --- a/migration/rdma.c
> +++ b/migration/rdma.c
> @@ -2366,10 +2366,10 @@ err_rdma_source_connect:
>
> static int qemu_rdma_dest_init(RDMAContext *rdma, Error **errp)
> {
> - int ret = -EINVAL, idx;
> + int ret, idx;
> struct rdma_cm_id *listen_id;
> char ip[40] = "unknown";
> - struct rdma_addrinfo *res;
> + struct rdma_addrinfo *res, *e;
> char port_str[16];
>
> for (idx = 0; idx < RDMA_WRID_MAX; idx++) {
> @@ -2377,7 +2377,7 @@ static int qemu_rdma_dest_init(RDMAContext *rdma, Error
> **errp)
> rdma->wr_data[idx].control_curr = NULL;
> }
>
> - if (rdma->host == NULL) {
> + if (!rdma->host || !rdma->host[0]) {
> ERROR(errp, "RDMA host is not set!");
> rdma->error_state = -EINVAL;
> return -1;
> @@ -2400,40 +2400,33 @@ static int qemu_rdma_dest_init(RDMAContext *rdma,
> Error **errp)
> snprintf(port_str, 16, "%d", rdma->port);
> port_str[15] = '\0';
>
> - if (rdma->host && strcmp("", rdma->host)) {
> - struct rdma_addrinfo *e;
> + ret = rdma_getaddrinfo(rdma->host, port_str, NULL, &res);
> + if (ret < 0) {
> + ERROR(errp, "could not rdma_getaddrinfo address %s", rdma->host);
> + goto err_dest_init_bind_addr;
> + }
>
> - ret = rdma_getaddrinfo(rdma->host, port_str, NULL, &res);
> - if (ret < 0) {
> - ERROR(errp, "could not rdma_getaddrinfo address %s", rdma->host);
> - goto err_dest_init_bind_addr;
> + for (e = res; e != NULL; e = e->ai_next) {
> + inet_ntop(e->ai_family,
> + &((struct sockaddr_in *) e->ai_dst_addr)->sin_addr, ip, sizeof
> ip);
> + trace_qemu_rdma_dest_init_trying(rdma->host, ip);
> + ret = rdma_bind_addr(listen_id, e->ai_dst_addr);
> + if (ret) {
> + continue;
> }
> -
> - for (e = res; e != NULL; e = e->ai_next) {
> - inet_ntop(e->ai_family,
> - &((struct sockaddr_in *) e->ai_dst_addr)->sin_addr, ip,
> sizeof ip);
> - trace_qemu_rdma_dest_init_trying(rdma->host, ip);
> - ret = rdma_bind_addr(listen_id, e->ai_dst_addr);
> - if (!ret) {
> - if (e->ai_family == AF_INET6) {
> - ret = qemu_rdma_broken_ipv6_kernel(errp,
> listen_id->verbs);
> - if (ret) {
> - continue;
> - }
> - }
> -
> - goto listen;
> + if (e->ai_family == AF_INET6) {
> + ret = qemu_rdma_broken_ipv6_kernel(errp, listen_id->verbs);
> + if (ret) {
> + continue;
> }
> }
> + break;
> + }
>
> + if (!e) {
> ERROR(errp, "Error: could not rdma_bind_addr!");
> goto err_dest_init_bind_addr;
> - } else {
> - ERROR(errp, "migration host and port not specified!");
> - ret = -EINVAL;
> - goto err_dest_init_bind_addr;
> }
> -listen:
>
> rdma->listen_id = listen_id;
> qemu_rdma_dump_gid("dest_init", listen_id);
>
- [Qemu-trivial] [PULL 04/47] memsave: Improve and disambiguate error message, (continued)
- [Qemu-trivial] [PULL 04/47] memsave: Improve and disambiguate error message, Michael Tokarev, 2015/03/04
- [Qemu-trivial] [PULL 19/47] xtensa: Remove superfluous '\n' around error_report(), Michael Tokarev, 2015/03/04
- [Qemu-trivial] [PULL 05/47] smbios: document cmdline options for smbios type 2-4, 17 structures, Michael Tokarev, 2015/03/04
- [Qemu-trivial] [PULL 40/47] disas/cris: Fix warning caused by missing 'static' attribute, Michael Tokarev, 2015/03/04
- [Qemu-trivial] [PULL 17/47] vhost-scsi: Remove superfluous '\n' around error_report(), Michael Tokarev, 2015/03/04
- [Qemu-trivial] [PULL 39/47] disas/arm: Fix warnings caused by missing 'static' attribute, Michael Tokarev, 2015/03/04
- [Qemu-trivial] [PULL 10/47] qerror.h: Swap definitions that were not in alphabetical order, Michael Tokarev, 2015/03/04
- [Qemu-trivial] [PULL 15/47] numa: remove superfluous '\n' around error_setg, Michael Tokarev, 2015/03/04
- [Qemu-trivial] [PULL 36/47] gitignore: Ignore new tests, Michael Tokarev, 2015/03/04
- [Qemu-trivial] [PULL 06/47] migration/rdma: clean up qemu_rdma_dest_init a bit, Michael Tokarev, 2015/03/04
- Re: [Qemu-trivial] [PULL 06/47] migration/rdma: clean up qemu_rdma_dest_init a bit,
Michael Tokarev <=
- [Qemu-trivial] [PULL 25/47] xen: Remove xen_cmos_set_s3_resume(), Michael Tokarev, 2015/03/04
- [Qemu-trivial] [PULL 37/47] e500: fix memory leak, Michael Tokarev, 2015/03/04
- [Qemu-trivial] [PULL 32/47] milkymist.c: fix memory leak, Michael Tokarev, 2015/03/04
- [Qemu-trivial] [PULL 27/47] qemu-char: add cyrillic characters 'numerosign' to VNC keysyms, Michael Tokarev, 2015/03/04
- [Qemu-trivial] [PULL 46/47] gdbstub: avoid possible NULL pointer dereference, Michael Tokarev, 2015/03/04
- [Qemu-trivial] [PULL 11/47] qmp-commands.hx: Fix several typos, Michael Tokarev, 2015/03/04
- [Qemu-trivial] [PULL 03/47] xilinx_ethlite: Clean up after commit 2f991ad, Michael Tokarev, 2015/03/04
- [Qemu-trivial] [PULL 47/47] 9pfs: remove useless return, Michael Tokarev, 2015/03/04
- [Qemu-trivial] [PULL 08/47] cutils: refine strtol error handling in parse_debug_env, Michael Tokarev, 2015/03/04
- [Qemu-trivial] [PULL 28/47] qemu-char: add cyrillic key 'numerosign' to Russian keymap, Michael Tokarev, 2015/03/04