[ofa-general] [PATCH] opensm: Bug in coding of VL Arbitration tables

Eitan Zahavi eitan at mellanox.co.il
Wed Jul 18 09:28:04 PDT 2007


Hi Sasha

Discovered a bug in coding of the VL Arbitration table "index".
According to spec should be:
 1 for low part of low table 
 2 for high part of low table
 3 for low part of high table
 4 for high part of high table 

the patch below fixes it:

Eitan

Signed-off-by:  Eitan Zahavi <eitan at mellanox.co.il>

diff --git a/opensm/opensm/osm_qos.c b/opensm/opensm/osm_qos.c
index bbb1608..413e200 100644
--- a/opensm/opensm/osm_qos.c
+++ b/opensm/opensm/osm_qos.c
@@ -116,14 +116,14 @@ static ib_api_status_t vlarb_update(osm_req_t * p_req,
 		    p_pi->vl_arb_low_cap : IB_NUM_VL_ARB_ELEMENTS_IN_BLOCK;
 		if ((status = vlarb_update_table_block(p_req, p, port_num,
 						       &qcfg->vlarb_low[0],
-						       len, 0)) != IB_SUCCESS)
+						       len, 1)) != IB_SUCCESS)
 			return status;
 	}
 	if (p_pi->vl_arb_low_cap > IB_NUM_VL_ARB_ELEMENTS_IN_BLOCK) {
 		len = p_pi->vl_arb_low_cap % IB_NUM_VL_ARB_ELEMENTS_IN_BLOCK;
 		if ((status = vlarb_update_table_block(p_req, p, port_num,
 						       &qcfg->vlarb_low[1],
-						       len, 1)) != IB_SUCCESS)
+						       len, 2)) != IB_SUCCESS)
 			return status;
 	}
 	if (p_pi->vl_arb_high_cap > 0) {
@@ -131,14 +131,14 @@ static ib_api_status_t vlarb_update(osm_req_t * p_req,
 		    p_pi->vl_arb_high_cap : IB_NUM_VL_ARB_ELEMENTS_IN_BLOCK;
 		if ((status = vlarb_update_table_block(p_req, p, port_num,
 						       &qcfg->vlarb_high[0],
-						       len, 2)) != IB_SUCCESS)
+						       len, 3)) != IB_SUCCESS)
 			return status;
 	}
 	if (p_pi->vl_arb_high_cap > IB_NUM_VL_ARB_ELEMENTS_IN_BLOCK) {
 		len = p_pi->vl_arb_high_cap % IB_NUM_VL_ARB_ELEMENTS_IN_BLOCK;
 		if ((status = vlarb_update_table_block(p_req, p, port_num,
 						       &qcfg->vlarb_high[1],
-						       len, 3)) != IB_SUCCESS)
+						       len, 4)) != IB_SUCCESS)
 			return status;
 	}
 




More information about the general mailing list