On Tue, Apr 21, 2015 at 08:15:19AM -0400, Hal Rosenstock wrote:
> From: Vladimir Koushnir <[email protected]>
> Date: Thu, 16 Apr 2015 16:56:40 +0300
> 
> Global file descriptor for SMPs should be opened only after running
> ibnd_discover_fabric() to avoid parallel usage of two SMP file descriptors

Is there a bug which these patches fix?

Is there some issue with the ibsim?

Ir

> 
> Signed-off-by: Vladimir Koushnir <[email protected]>
> Signed-off-by: Hal Rosenstock <[email protected]>
> ---
>  src/dump_fts.c |   30 +++++++++++++++++++-----------
>  1 files changed, 19 insertions(+), 11 deletions(-)
> 
> diff --git a/src/dump_fts.c b/src/dump_fts.c
> index 0de61da..387211f 100644
> --- a/src/dump_fts.c
> +++ b/src/dump_fts.c
> @@ -457,33 +457,41 @@ int main(int argc, char **argv)
>       if (argc > 1)
>               endlid = strtoul(argv[1], 0, 0);
>  
> -     srcport = mad_rpc_open_port(ibd_ca, ibd_ca_port, mgmt_classes, 3);
> -     if (!srcport)
> -             IBEXIT("Failed to open '%s' port '%d'", ibd_ca, ibd_ca_port);
> -
>       node_name_map = open_node_name_map(node_name_map_file);
>  
> -     smp_mkey_set(srcport, ibd_mkey);
> -
> -     if (ibd_timeout) {
> -             mad_rpc_set_timeout(srcport, ibd_timeout);
> +     if (ibd_timeout)
>               config.timeout_ms = ibd_timeout;
> -     }
>  
>       config.flags = ibd_ibnetdisc_flags;
>       config.mkey = ibd_mkey;
>  
>       if ((fabric = ibnd_discover_fabric(ibd_ca, ibd_ca_port, NULL,
>                                               &config)) != NULL) {
> +
> +             srcport = mad_rpc_open_port(ibd_ca, ibd_ca_port, mgmt_classes, 
> 3);
> +             if (!srcport) {
> +                     fprintf(stderr,
> +                             "Failed to open '%s' port '%d'\n", ibd_ca, 
> ibd_ca_port);
> +                     rc = -1;
> +                     goto Exit;
> +             }
> +             smp_mkey_set(srcport, ibd_mkey);
> +
> +             if (ibd_timeout) {
> +                     mad_rpc_set_timeout(srcport, ibd_timeout);
> +             }
> +
>               ibnd_iter_nodes_type(fabric, process_switch, IB_NODE_SWITCH, 
> fabric);
> +
> +             mad_rpc_close_port(srcport);
> +
>       } else {
>               fprintf(stderr, "Failed to discover fabric\n");
>               rc = -1;
>       }
> -
> +Exit:
>       ibnd_destroy_fabric(fabric);
>  
> -     mad_rpc_close_port(srcport);
>       close_node_name_map(node_name_map);
>       exit(rc);
>  }
> -- 
> 1.7.8.2
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to