I may have incorrectly acked a patch on the list which I did not apply... If so please ignore.
Sorry for the noise, Ira > -----Original Message----- > From: Vladimir Koushnir [mailto:vladim...@mellanox.com] > Sent: Wednesday, April 22, 2015 7:43 AM > To: Weiny, Ira; Hal Rosenstock > Cc: linux-rdma@vger.kernel.org > Subject: Re: [PATCH infiniband-diags] Close additional file descriptor in > iblinkinfo in advance > > Thanks for figuring this out. > I'll test on Sun and update. > > "ira.weiny" <ira.we...@intel.com> wrote: > > > On Thu, Apr 16, 2015 at 09:22:28AM -0400, Hal Rosenstock wrote: > > From: Vladimir Koushnir <vladim...@mellanox.com> > > Date: Tue, 14 Apr 2015 18:14:48 +0300 > > > > Additional file descriptor for SMP MADs should be closed before > > running > > ibnd_discover_fabric() to avoid parallel usage of two SMP file > > descriptors > > > > Signed-off-by: Vladimir Koushnir <vladim...@mellanox.com> > > Signed-off-by: Hal Rosenstock <h...@mellanox.com> > > I'm not quite sure why but this patch breaks the DR processing of iblinkinfo. > > Please test iblinkinfo -D <path> > > I don't have the time to figure this out at the moment. > > Ira > > > --- > > src/iblinkinfo.c | 16 ++++++++++------ > > 1 files changed, 10 insertions(+), 6 deletions(-) > > > > diff --git a/src/iblinkinfo.c b/src/iblinkinfo.c index > > 92ff3c6..9dcf698 100644 > > --- a/src/iblinkinfo.c > > +++ b/src/iblinkinfo.c > > @@ -594,6 +594,7 @@ int main(int argc, char **argv) > > ibnd_fabric_t *diff_fabric = NULL; > > struct ibmad_port *ibmad_port; > > ib_portid_t port_id = { 0 }; > > + uint8_t ni[IB_SMP_DATA_SIZE] = { 0 }; > > int mgmt_classes[3] = > > { IB_SMI_CLASS, IB_SMI_DIRECT_CLASS, IB_SA_CLASS }; > > > > @@ -653,12 +654,20 @@ int main(int argc, char **argv) > > config.timeout_ms = ibd_timeout; > > } > > > > + if (!smp_query_via(ni, &port_id, IB_ATTR_NODE_INFO, 0, > > + ibd_timeout, ibmad_port)){ > > + mad_rpc_close_port(ibmad_port); > > + fprintf(stderr, > > + "Failed to get local Node Info\n"); > > + exit(1); > > + } > > config.flags = ibd_ibnetdisc_flags; > > config.mkey = ibd_mkey; > > > > node_name_map = open_node_name_map(node_name_map_file); > > > > if (dr_path && load_cache_file) { > > + mad_rpc_close_port(ibmad_port); > > fprintf(stderr, "Cannot specify cache and direct route > > path\n"); > > exit(1); > > } > > @@ -678,6 +687,7 @@ int main(int argc, char **argv) > > IBWARN("Failed to resolve %s; attempting full scan\n", > > guid_str); > > } > > + mad_rpc_close_port(ibmad_port); > > > > if (diff_cache_file && > > !(diff_fabric = ibnd_load_fabric(diff_cache_file, 0))) @@ > > -723,11 +733,6 @@ int main(int argc, char **argv) > > fprintf(stderr, "Failed to find port: %s\n", > > guid_str); > > } else if (!all && dr_path) { > > ibnd_port_t *p = NULL; > > - uint8_t ni[IB_SMP_DATA_SIZE] = { 0 }; > > - > > - if (!smp_query_via(ni, &port_id, IB_ATTR_NODE_INFO, 0, > > - ibd_timeout, ibmad_port)) > > - return -1; > > mad_decode_field(ni, IB_NODE_PORT_GUID_F, &(guid)); > > > > p = ibnd_find_port_guid(fabric, guid); @@ -758,6 +763,5 > > @@ int main(int argc, char **argv) > > > > close_port: > > close_node_name_map(node_name_map); > > - mad_rpc_close_port(ibmad_port); > > exit(rc); > > } > > -- > > 1.7.8.2 > > -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html