[openib-general] [PATCH] osm: state manager return wrong signal

eitan at mellanox.co.il eitan at mellanox.co.il
Mon Dec 18 12:15:19 PST 2006


From: Eitan Zahavi <eitan at sw053.yok.mtl.com>

diff --git a/osm/opensm/osm_state_mgr.c b/osm/opensm/osm_state_mgr.c
index 9eac038..94cc095 100644
--- a/osm/opensm/osm_state_mgr.c
+++ b/osm/opensm/osm_state_mgr.c
@@ -1853,6 +1853,7 @@ osm_state_mgr_process(
 {
    ib_api_status_t status;
    osm_remote_sm_t *p_remote_sm;
+   osm_signal_t tmp_signal;
 
    CL_ASSERT( p_mgr );
 
@@ -2075,11 +2076,10 @@ osm_state_mgr_process(
          case OSM_SIGNAL_CHANGE_DETECTED:
             /*
              * Nothing to do here.  One subnet change typcially
-             * begets another....
+             * begets another.... But needs to wait for all transactions
              */
             signal = OSM_SIGNAL_NONE;
             break;
-
          case OSM_SIGNAL_NO_PENDING_TRANSACTIONS:
             /*
              * A change was detected on the subnet.
@@ -2219,7 +2219,10 @@ osm_state_mgr_process(
             signal = osm_pkey_mgr_process( p_mgr->p_subn->p_osm );
 
             /* the returned signal is always DONE */
-            signal = osm_qos_setup(p_mgr->p_subn->p_osm);
+            tmp_signal = osm_qos_setup(p_mgr->p_subn->p_osm);
+
+            if (tmp_signal == OSM_SIGNAL_DONE_PENDING)
+               signal = OSM_SIGNAL_DONE_PENDING;
 
             /* try to restore SA DB (this should be before lid_mgr
                because we may want to disable clients reregistration
-- 
1.4.4.1.GIT





More information about the general mailing list