osm_torus.c: Fix torus crash when actual topology is not torus
PATCH 1/1 osm_torus.c: Fix torus crash when actual topology is not torus
From: Shlomi Nimrodi <shlomin-VPRAkNaXOzVWk0Htik3J/[email protected]>
Date: Thu, 27 Mar 2014 18:52:49 +0200
Torus crashes when it is configured in a way but actual topology has nothing to do with torus or the configuration, changed it to fail without crash
Reviewed-by Jim Schutt <[email protected]>
--- opensm/osm_torus.c | 15 +++++++++++---- 1 files changed, 11 insertions(+), 4 deletions(-)
opensm/osm_torus.c +11 -4
@@ -7262,7 +7262,7 @@ out: }static -void build_torus (struct fabric *f,struct torus *t) +bool build_torus (struct fabric *f,struct torus *t) {int i, j, k;int im1, jm1, km1;
@@ -7383,9 +7383,12 @@ again:for (k =0 ; k < (int )t->z_sz; k++)for (j =0 ; j < (int )t->y_sz; j++)for (i =0 ; i < (int )t->x_sz; i++) -link_srcsink (t, i, j, k); +if (!link_srcsink (t, i, j, k)) { + success = false; + goto out; + } out: -return ; +return success; }/*
@@ -9493,7 +9496,11 @@ int torus_build_lfts(void *context) (int )torus->x_sz, (int )torus->y_sz, (int )torus->z_sz, (ALL_MESH(torus->flags) ? "mesh" : "torus")); -build_torus (fabric, torus); +if (!build_torus (fabric, torus)) { +OSM_LOG (&torus->osm->log,OSM_LOG_ERROR ,"ERR 4E57: " +"build_torus finished with errors\n" ); + goto out; + } OSM_LOG(&torus->osm->log, OSM_LOG_INFO, "Built %d x %d x %d %s w/ %d links, %d switches, %d CA ports\n",
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html