[openib-general] [PATCH] osm: fix mlx vendor rmpp sender fail to send zero size RMPP
    Eitan Zahavi 
    eitan at mellanox.co.il
       
    Thu Jun  8 01:40:30 PDT 2006
    
    
  
Hi Hal
Run into this by chance. Some changes introduced lately to the SA queries 
now sends zero size RMPP (single segment with only headers). It used to send 
them as non-RMPP responses. Anyway, this broke the mlx vendor code that I use 
for simulation.
This patch resolves this new problem.
Eitan
Signed-off-by:  Eitan Zahavi <eitan at mellanox.co.il>
Index: libvendor/osm_vendor_mlx_sar.c
===================================================================
--- libvendor/osm_vendor_mlx_sar.c	(revision 7703)
+++ libvendor/osm_vendor_mlx_sar.c	(working copy)
@@ -91,7 +91,7 @@ osmv_rmpp_sar_get_mad_seg(
     num_segs++;
   }
 
-  if ( seg_idx > num_segs)
+  if ( (seg_idx > num_segs) && (seg_idx != 1) )
   {
     return IB_NOT_FOUND;
   }
@@ -102,18 +102,14 @@ osmv_rmpp_sar_get_mad_seg(
   /* attach header */
   memcpy(p_buf,p_sar->p_arbt_mad,p_sar->hdr_sz);
 
-
   /* fill data */
   p_seg = (char*)p_sar->p_arbt_mad + p_sar->hdr_sz + ((seg_idx-1) * p_sar->data_sz);
   sz_left = p_sar->data_len - ((seg_idx -1) * p_sar->data_sz);
   if (sz_left > p_sar->data_sz)
-  {
     memcpy((char*)p_buf+p_sar->hdr_sz,(char*)p_seg,p_sar->data_sz);
-  }
   else
     memcpy((char*)p_buf+ p_sar->hdr_sz, (char*)p_seg, sz_left);
 
-
   return IB_SUCCESS;
 }
 
    
    
More information about the general
mailing list