[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