If all configured routing engines fail to initialize, the routing engine
list will be empty.  If opensm is also configured for no fallback routing
engine, then osm_ucast_mgr_process() can incorrectly return success even
though no routing engine will run.  The result of that is that heavy
sweeps are attempted in a tight loop, spamming opensm logs and the fabric.

With this fix, heavy sweeps occur only after a trap or the sweep interval,
reducing log spam and making it easier to find the reason for the failure.

Signed-off-by: Jim Schutt <jasc...@sandia.gov>
---
 opensm/opensm/osm_ucast_mgr.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/opensm/opensm/osm_ucast_mgr.c b/opensm/opensm/osm_ucast_mgr.c
index 85495eb..3e9c836 100644
--- a/opensm/opensm/osm_ucast_mgr.c
+++ b/opensm/opensm/osm_ucast_mgr.c
@@ -1086,6 +1086,7 @@ int osm_ucast_mgr_process(IN osm_ucast_mgr_t * p_mgr)
            ucast_mgr_setup_all_switches(p_mgr->p_subn) < 0)
                goto Exit;
 
+       failed = -1;
        p_osm->routing_engine_used = NULL;
        while (p_routing_eng) {
                failed = ucast_mgr_route(p_routing_eng, p_osm);
-- 
1.6.2.2


--
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

Reply via email to