[ofa-general] Re: [PATCH] opensm: Bug in coding trying to set vl_arb_high_limit

Sasha Khapyorsky sashak at voltaire.com
Thu Jul 19 06:24:07 PDT 2007


On 16:00 Thu 19 Jul     , Sasha Khapyorsky wrote:
> Hi Eitan,
> 
> On Thu, 2007-07-19 at 15:24 +0300, Eitan Zahavi wrote:
> > Hi Sasha,
> > 
> > I was not sure if there might be a case where the Link manager will not
> > touch the port.
> 
> It should, at least with IB_LINK_NO_CHANGE call. So I moved VLHighLimit
> setup under this condition too (where most PortInfo fields are handled).
> Will push soon. Thanks for the patch.

Actually this is what I meant:


commit 464a00b94e77d5f753a01569f19166e115eb90e5
Author: Sasha Khapyorsky <sashak at voltaire.com>
Date:   Thu Jul 19 16:03:55 2007 +0300

    opensm: VLHighLimit update during initial (in sweep) link_mgr call
    
    Update PortInfo:VLHighLimit during initial (in sweep) link_mgr call
    (which is with IB_LINK_NO_CHANGE).
    
    Signed-off-by: Sasha Khapyorsky <sashak at voltaire.com>

diff --git a/opensm/opensm/osm_link_mgr.c b/opensm/opensm/osm_link_mgr.c
index b2b43ed..196942c 100644
--- a/opensm/opensm/osm_link_mgr.c
+++ b/opensm/opensm/osm_link_mgr.c
@@ -334,6 +334,14 @@ __osm_link_mgr_set_physp_pi(
          ib_port_info_get_op_vls(p_old_pi) )
       send_set = TRUE;
 
+    /* provide the vl_high_limit from the qos mgr */
+    if (p_mgr->p_subn->opt.no_qos == FALSE &&
+        p_physp->vl_high_limit != p_old_pi->vl_high_limit)
+    {
+      send_set = TRUE;
+      p_pi->vl_high_limit = p_physp->vl_high_limit;
+    }
+
     /* also the context can flag the need to check for errors. */
     context.pi_context.ignore_errors = FALSE;
   }
@@ -360,15 +368,6 @@ __osm_link_mgr_set_physp_pi(
       context.pi_context.active_transition = FALSE;
   }
 
-  /* provide the vl_high_limit from the qos mgr */
-  if (p_mgr->p_subn->opt.no_qos == FALSE)
-	  if (p_physp->vl_high_limit != p_old_pi->vl_high_limit)
-	  {
-		  send_set = TRUE;
-		  p_pi->vl_high_limit = p_physp->vl_high_limit;
-	  }
-
-
   context.pi_context.node_guid = osm_node_get_node_guid( p_node );
   context.pi_context.port_guid = osm_physp_get_port_guid( p_physp );
   context.pi_context.set_method = TRUE;


Sasha



More information about the general mailing list