From: Vincent Ficet <jean-vincent.fi...@bull.net> Instead of unconditionnally assigning valid port numbers to the lft table, it now leaves 'holes' filled with the default value OSM_NO_PATH (=255) Accessing these invalid/unassigned LFT entries yields invalid addresses starting with 0xff as in the above example.
After reverting commit 81dade3aeb1d5c80472a4f9fef55e9916bb38d3a and applying the above patch, we have not observed any multicast loop nor any segmentation fault. Reproducing this bug using ibsim is easy: 1/ Load a fat-tree topology 2/ Unlink a leaf switch 3/ Start opensm (configured with the ftree routing engine) 4/ Relink the leaf switch Signed-off-by: Vincent Ficet <jean-vincent.fi...@bull.net> Signed-off-by: Alex Netes <ale...@mellanox.com> --- opensm/osm_ucast_ftree.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/opensm/osm_ucast_ftree.c b/opensm/osm_ucast_ftree.c index c81e7a3..932ec6a 100644 --- a/opensm/osm_ucast_ftree.c +++ b/opensm/osm_ucast_ftree.c @@ -4171,6 +4171,9 @@ static int construct_fabric(IN void *context) OSM_LOG(&p_ftree->p_osm->log, OSM_LOG_VERBOSE, "Max LID in switch LFTs: %u\n", p_ftree->lft_max_lid); + /* Build the full lid matrices needed for multicast routing */ + osm_ucast_mgr_build_lid_matrices(&p_ftree->p_osm->sm.ucast_mgr); + Exit: if (status != 0) { OSM_LOG(&p_ftree->p_osm->log, OSM_LOG_VERBOSE, -- 1.7.11.7 -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html