[openib-general] [PATCH] Opensm - fix bug in osm_sa_portinfo_record
Yael Kalka
yael at mellanox.co.il
Sun Dec 11 23:52:49 PST 2005
Hi Hal,
During some tests here, we noticed that if the SA is queried with
IB_PIR_COMPMASK_BASELID, and base_lid = zero - the SA will return in
result all the ports.
The following patch fixes this.
Thanks,
Yael
Signed-off-by: Yael Kalka <yael at mellanox.co.il>
Index: opensm/osm_sa_portinfo_record.c
===================================================================
--- opensm/osm_sa_portinfo_record.c (revision 4371)
+++ opensm/osm_sa_portinfo_record.c (working copy)
@@ -266,6 +266,13 @@ __osm_sa_pir_check_physp(
&p_physp->port_info,
OSM_LOG_DEBUG );
+ /* We have to re-chech the base_lid, since if the given
+ base_lid in p_pi is zero - we are comparing on all ports. */
+ if( comp_mask & IB_PIR_COMPMASK_BASELID )
+ {
+ if( p_comp_pi->base_lid != p_pi->base_lid )
+ goto Exit;
+ }
if( comp_mask & IB_PIR_COMPMASK_MKEY )
{
if( p_comp_pi->m_key != p_pi->m_key )
@@ -586,6 +593,9 @@ osm_pir_rcv_process(
goto Exit;
}
+ if ( osm_log_is_active( p_rcv->p_log, OSM_LOG_DEBUG ) )
+ osm_dump_portinfo_record( p_rcv->p_log, p_rcvd_rec, OSM_LOG_DEBUG );
+
p_tbl = &p_rcv->p_subn->port_lid_tbl;
p_pi = &p_rcvd_rec->port_info;
More information about the general
mailing list