diff mbox

opensm/osm_sm_state_mgr.c: Start sweep immedeately when recieving HANDOVER in DISCOVERING state

Message ID 20130205143017.GE13151@calypso.mtl.com (mailing list archive)
State Accepted
Delegated to: Hal Rosenstock
Headers show

Commit Message

Alex Netes Feb. 5, 2013, 2:30 p.m. UTC
Instead of waiting fo sweep_interval to expire, start the sweep
imeediately. That can speed-up SM bring up.

Found-by: Eli Dorfman <eli.dorfman@xtremio.com>
Signed-off-by: Alex Netes <alexne@mellanox.com>
---
 opensm/osm_sm_state_mgr.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)
diff mbox

Patch

diff --git a/opensm/osm_sm_state_mgr.c b/opensm/osm_sm_state_mgr.c
index 7da8258..c996ea2 100644
--- a/opensm/osm_sm_state_mgr.c
+++ b/opensm/osm_sm_state_mgr.c
@@ -294,11 +294,13 @@  ib_api_status_t osm_sm_state_mgr_process(osm_sm_t * sm,
 			break;
 		case OSM_SM_SIGNAL_HANDOVER:
 			/*
-			 * Do nothing. We will discover it later on. If we already discovered
-			 * this SM, and got the HANDOVER - this means the remote SM is of
-			 * lower priority. In this case we will stop polling it (since it is
-			 * a lower priority SM in STANDBY state).
+			 * Signal for a new sweep. We need to discover the other SM.
+			 * If we already discovered this SM, and got the
+			 * HANDOVER - this means the remote SM is of lower priority.
+			 * In this case we will stop polling it (since it is a lower
+			 * priority SM in STANDBY state).
 			 */
+			osm_sm_signal(sm, OSM_SIGNAL_SWEEP);
 			break;
 		default:
 			sm_state_mgr_signal_error(sm, signal);