[ofa-general] [PATCH] osm: two similar bugs in Up/Dn routing

Yevgeny Kliteynik kliteyn at dev.mellanox.co.il
Sun May 13 01:03:43 PDT 2007


Hi Hal,

This small patch fixes two similar bugs in Up/Dn routing in OpenSM.
A 8-bits integers were used as indexes when scanning subnet, which
in one case caused OpenSM to crash when ranking "path" is longer 
than 256 switches, and in other case caused OpenSM to go into infinite
loop when fabric has more than 256 roots.

Please apply both to ofed_1_2 and to master.

-- Yevgeny

Signed-off-by:  Yevgeny Kliteynik <kliteyn at dev.mellanox.co.il>
---
 osm/opensm/osm_ucast_updn.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/osm/opensm/osm_ucast_updn.c b/osm/opensm/osm_ucast_updn.c
index 78e8363..398a2b2 100644
--- a/osm/opensm/osm_ucast_updn.c
+++ b/osm/opensm/osm_ucast_updn.c
@@ -473,7 +473,7 @@ updn_subn_rank(
   IN updn_t* p_updn )
 {
   osm_switch_t *p_sw;
-  uint8_t rank = base_rank;
+  uint32_t rank = base_rank;
   osm_physp_t *p_physp, *p_remote_physp;
   cl_qlist_t list;
   cl_status_t did_cause_update;
@@ -636,7 +636,7 @@ __osm_subn_calc_up_down_min_hop_table(
   IN uint64_t* guid_list,
   IN updn_t* p_updn )
 {
-  uint8_t idx = 0;
+  uint32_t idx = 0;
   int status;
 
   OSM_LOG_ENTER( &p_updn->p_osm->log, osm_subn_calc_up_down_min_hop_table );
-- 
1.4.4.1.GIT





More information about the general mailing list