Hi Hal,

During our windows checks we noticed an issue in
the __osm_lid_mgr_init_sweep function under osm_lid_mgr.c.
The initializing of max_persistent_lid and max_discovered_lid is
correct only if the vector is not empty. 
Attached is a patch resolving this issue.

Thanks,
Yael

Signed-off-by:  Yael Kalka <[EMAIL PROTECTED]>

Index: opensm/osm_lid_mgr.c
===================================================================
--- opensm/osm_lid_mgr.c        (revision 3395)
+++ opensm/osm_lid_mgr.c        (working copy)
@@ -418,8 +418,12 @@ __osm_lid_mgr_init_sweep(
   */
 
   /* find the range of lids to scan */
-  max_discovered_lid = cl_ptr_vector_get_size(p_discovered_vec) - 1;
-  max_persistent_lid = cl_ptr_vector_get_size(p_persistent_vec) - 1;
+  max_discovered_lid = (uint16_t)cl_ptr_vector_get_size(p_discovered_vec);
+  max_persistent_lid = (uint16_t)cl_ptr_vector_get_size(p_persistent_vec);
+
+  /* but the vectors have one extra entry for lid=0 */
+  if (max_discovered_lid) max_discovered_lid--;
+  if (max_persistent_lid) max_persistent_lid--;
 
   if (max_persistent_lid > max_discovered_lid)
     max_defined_lid = max_persistent_lid;

_______________________________________________
openib-general mailing list
[email protected]
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to