infiniband-diags/libibnetdisc: clean up PortInfo queries
PATCH 1/2 infiniband-diags/libibnetdisc: clean up PortInfo queries
Sasha,
This and the subsequent patch clean up the port info query code to be more straight forward.
First off I got rid of the "decode_port_info" function as it does very little and combined the smp_query_via call into a "query_port_info"
The second patch removes the "get_port_info" function as it became nearly redundant with query_port_info.
Ira
From: Ira Weiny <[email protected]>
Date: Tue, 10 Nov 2009 11:22:03 -0800
Subject: [PATCH] infiniband-diags/libibnetdisc: clean up PortInfo queries
remove old "decode_port_info" and replace with new "query_port_info"
--- infiniband-diags/libibnetdisc/src/ibnetdisc.c | 32 +++++++++++++----------- 1 files changed, 17 insertions(+), 15 deletions(-)
infiniband-diags/libibnetdisc/src/ibnetdisc.c +17 -15
@@ -57,16 +57,24 @@static int show_progress =0 ;int ibdebug; -void decode_port_info (ibnd_port_t * port) +int query_port_info (struct ibmad_port *ibmad_port,ib_portid_t * portid, +int portnum,ibnd_port_t * port) { +if (!smp_query_via (port->info, portid,IB_ATTR_PORT_INFO , + portnum,0 , ibmad_port)) +return -1 ; + port->base_lid = (uint16_t )mad_get_field (port->info,0 ,IB_PORT_LID_F ); port->lmc = (uint8_t )mad_get_field (port->info,0 ,IB_PORT_LMC_F ); + +return 0 ; }static int get_port_info (struct ibmad_port *ibmad_port,ibnd_fabric_t * fabric,ibnd_port_t * port,int portnum,ib_portid_t * portid) { +int rc =0 ;char width[64 ], speed[64 ];int iwidth;int ispeed;
@@ -75,11 +83,8 @@ static int get_port_info(struct ibmad_port *ibmad_port, iwidth =mad_get_field (port->info,0 ,IB_PORT_LINK_WIDTH_ACTIVE_F ); ispeed =mad_get_field (port->info,0 ,IB_PORT_LINK_SPEED_ACTIVE_F ); -if (!smp_query_via (port->info, portid,IB_ATTR_PORT_INFO , - portnum,0 , ibmad_port)) -return -1 ; - -decode_port_info (port); +if ((rc =query_port_info (ibmad_port, portid, portnum, port)) !=0 ) +return rc;IBND_DEBUG ("portid %s portnum %d: base lid %d state %d physstate %d %s %s\n",
@@ -123,10 +128,8 @@ static int query_node(struct ibmad_port *ibmad_port, ibnd_fabric_t * fabric,if (!smp_query_via (nd, portid,IB_ATTR_NODE_DESC ,0 ,0 , ibmad_port))return -1 ; -if (!smp_query_via (port->info, portid,IB_ATTR_PORT_INFO ,0 ,0 , - ibmad_port)) -return -1 ; -decode_port_info (port); +if ((rc =query_port_info (ibmad_port, portid,0 , port)) !=0 ) +return rc;if (node->type !=IB_NODE_SWITCH )return 0 ;
@@ -134,11 +137,10 @@ static int query_node(struct ibmad_port *ibmad_port, ibnd_fabric_t * fabric, node->smalid = port->base_lid; node->smalmc = port->lmc; -/* after we have the sma information find out the real PortInfo for this port */ -if (!smp_query_via (port->info, portid,IB_ATTR_PORT_INFO , - port->portnum,0 , ibmad_port)) -return -1 ; -decode_port_info (port); +/* after we have the sma information find out the "real" PortInfo for +* the external port */ +if ((rc =query_port_info (ibmad_port, portid, port->portnum, port)) !=0 ) +return rc; port->base_lid = (uint16_t ) node->smalid;/* LID is still defined by port 0 */ port->lmc = (uint8_t ) node->smalmc;
Signature · 6 lines
1.5.4.5 -- 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
A message that is not in the archive (sent off-list or not yet received): [email protected]
Sorry, I clicked "send" on patch 2/2 first so they came out of order...
I think you will get the idea... ;-)
Ira
Quoted 100 lines · On Tue, 10 Nov 2009 14:01:37 -0800 Ira Weiny…
Sasha,
This and the subsequent patch clean up the port info query code to be more straight forward.
First off I got rid of the "
decode_port_info" function as it does very little and combined thesmp_query_viacall into a "query_port_info"The second patch removes the "
get_port_info" function as it became nearly redundant withquery_port_info.Ira
From: Ira Weiny <[email protected]>
Date: Tue, 10 Nov 2009 11:22:03 -0800
Subject: [PATCH] infiniband-diags/libibnetdisc: clean up PortInfo queriesremove old "
decode_port_info" and replace with new "query_port_info"Signed-off-by Ira Weiny <[email protected]>--- infiniband-diags/libibnetdisc/src/ibnetdisc.c | 32 +++++++++++++----------- 1 files changed, 17 insertions(+), 15 deletions(-)infiniband-diags/libibnetdisc/src/ibnetdisc.c +17
-15@@ -57,16 +57,24 @@static int show_progress =0 ;int ibdebug; -void decode_port_info (ibnd_port_t * port) +int query_port_info (struct ibmad_port *ibmad_port,ib_portid_t * portid, +int portnum,ibnd_port_t * port) { +if (!smp_query_via (port->info, portid,IB_ATTR_PORT_INFO , + portnum,0 , ibmad_port)) +return -1 ; + port->base_lid = (uint16_t )mad_get_field (port->info,0 ,IB_PORT_LID_F ); port->lmc = (uint8_t )mad_get_field (port->info,0 ,IB_PORT_LMC_F ); + +return 0 ; }static int get_port_info (struct ibmad_port *ibmad_port,ibnd_fabric_t * fabric,ibnd_port_t * port,int portnum,ib_portid_t * portid) { +int rc =0 ;char width[64 ], speed[64 ];int iwidth;int ispeed;@@ -75,11 +83,8 @@ static int get_port_info(struct ibmad_port *ibmad_port, iwidth =mad_get_field (port->info,0 ,IB_PORT_LINK_WIDTH_ACTIVE_F ); ispeed =mad_get_field (port->info,0 ,IB_PORT_LINK_SPEED_ACTIVE_F ); -if (!smp_query_via (port->info, portid,IB_ATTR_PORT_INFO , - portnum,0 , ibmad_port)) -return -1 ; - -decode_port_info (port); +if ((rc =query_port_info (ibmad_port, portid, portnum, port)) !=0 ) +return rc;IBND_DEBUG ("portid %s portnum %d: base lid %d state %d physstate %d %s %s\n",@@ -123,10 +128,8 @@ static int query_node(struct ibmad_port *ibmad_port, ibnd_fabric_t * fabric,if (!smp_query_via (nd, portid,IB_ATTR_NODE_DESC ,0 ,0 , ibmad_port))return -1 ; -if (!smp_query_via (port->info, portid,IB_ATTR_PORT_INFO ,0 ,0 , - ibmad_port)) -return -1 ; -decode_port_info (port); +if ((rc =query_port_info (ibmad_port, portid,0 , port)) !=0 ) +return rc;if (node->type !=IB_NODE_SWITCH )return 0 ;@@ -134,11 +137,10 @@ static int query_node(struct ibmad_port *ibmad_port, ibnd_fabric_t * fabric, node->smalid = port->base_lid; node->smalmc = port->lmc; -/* after we have the sma information find out the real PortInfo for this port */ -if (!smp_query_via (port->info, portid,IB_ATTR_PORT_INFO , - port->portnum,0 , ibmad_port)) -return -1 ; -decode_port_info (port); +/* after we have the sma information find out the "real" PortInfo for +* the external port */ +if ((rc =query_port_info (ibmad_port, portid, port->portnum, port)) !=0 ) +return rc; port->base_lid = (uint16_t ) node->smalid;/* LID is still defined by port 0 */ port->lmc = (uint8_t ) node->smalmc;Signature · 1 line
1.5.4.5
Signature · 9 lines
Ira Weiny Math Programmer/Computer Scientist Lawrence Livermore National Lab 925-423-8008 [email protected] -- 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
Sasha Khapyorsky
AppliedQuoted 13 lines · Ira Weiny
Sasha,
This and the subsequent patch clean up the port info query code to be more straight forward.
First off I got rid of the "
decode_port_info" function as it does very little and combined thesmp_query_viacall into a "query_port_info"The second patch removes the "
get_port_info" function as it became nearly redundant withquery_port_info.Ira
Quoted 7 lines
From: Ira Weiny <[email protected]>
Date: Tue, 10 Nov 2009 11:22:03 -0800
Subject: [PATCH] infiniband-diags/libibnetdisc: clean up PortInfo queriesremove old "
decode_port_info" and replace with new "query_port_info"Signed-off-by Ira Weiny <[email protected]>
Applied. Thanks.
Sasha
--
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