]> git.openfabrics.org - ~shefty/rdma-win.git/commitdiff
[IPOIB_NDIS6_CM]
authorAlex Naslednikov <alex@mellanox.co.il>
Sun, 14 Nov 2010 10:18:43 +0000 (10:18 +0000)
committerAlex Naslednikov <alex@mellanox.co.il>
Sun, 14 Nov 2010 10:18:43 +0000 (10:18 +0000)
This patch fix the situation when init process fails (say, __ib_mgr_init fails)  and then ipoib_restart is called.
Shutter is shut  first time at the end of the init process. Thus, if init will fail, shutter will be never shut,
while ipoib_restart will try to alive such shutter.

git-svn-id: svn://openib.tc.cornell.edu/gen1@2987 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86

trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_adapter.cpp
trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_adapter.h
trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp
trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp

index 5949453c77e41a51fef3748382ce147292f02612..ec2cad06a021f4550122140586d2ca9c3d74d53c 100644 (file)
@@ -429,7 +429,8 @@ adapter_init(
                        p_adapter->p_ifc->get_err_str( status )) );\r
                return status;\r
        }\r
-       \r
+\r
+       p_adapter->ipoib_state = IPOIB_UNINIT;\r
        IPOIB_PRINT( TRACE_LEVEL_INFORMATION, IPOIB_DBG_INIT,\r
                ("Shutter Init, state = %d\n", p_adapter->ipoib_state) );\r
        IPOIB_PRINT( TRACE_LEVEL_INFORMATION, IPOIB_DBG_RECV,\r
index 22a0429605bc3b6dae4473e427aa6b8f0b386795..28f1a85bf63cfdc555625649cf9a5d50e008993b 100644 (file)
@@ -71,6 +71,7 @@ typedef enum
 } csum_flag_t;\r
 \r
 typedef        uint32_t ipoib_state_t;\r
+#define                IPOIB_UNINIT            0\r
 #define                IPOIB_INIT                      1\r
 #define        IPOIB_PAUSED            2\r
 #define                IPOIB_PAUSING           4\r
index b887cf249e50111612693a464ef0ab28aaf88637..5f3104f70b5b2eb7eaee075560267ba5bb6869c2 100644 (file)
@@ -1880,9 +1880,6 @@ if(cl_get_time_stamp_sec() < 30) {
                                ("ipoib_create_adapter returned status %d.\n", ib_status ) );\r
                        return NDIS_STATUS_FAILURE;\r
                }\r
-               p_adapter->ipoib_state = IPOIB_INIT;\r
-               IPOIB_PRINT( TRACE_LEVEL_INFORMATION,  IPOIB_DBG_SHUTTER,\r
-               ("ipoib_state changed to IPOIB_INIT\n") );\r
 \r
                status  = SetAttributes(p_adapter, h_adapter);\r
                if (status != NDIS_STATUS_SUCCESS) {\r
index 6c3e0b9d3653c3769427f38bd20ef73c82ee8c03..9d71f7ac49fc3e3bd20f23f4c199db26f0f6de76 100644 (file)
@@ -849,15 +849,19 @@ __port_init(
        V.      NDIS calls to ipoib_restart that calls to shutter_alive. Shutter counter is 0 and we can start working\r
        */\r
        \r
-       if ( p_adapter->ipoib_state == IPOIB_INIT) {\r
-               IPOIB_PRINT( TRACE_LEVEL_INFORMATION, IPOIB_DBG_RECV,\r
-               ("Shutter shut, state = %d\n", p_adapter->ipoib_state));\r
+       if ( p_adapter->ipoib_state == IPOIB_UNINIT ) \r
+       {\r
+               p_adapter->ipoib_state = IPOIB_INIT;\r
+               IPOIB_PRINT( TRACE_LEVEL_INFORMATION, IPOIB_DBG_SHUTTER,\r
+                       ("Shutter shut, state = %d\n", p_adapter->ipoib_state));\r
                shutter_shut ( &p_adapter->recv_shutter );\r
+       } \r
+       else \r
+       {\r
+               IPOIB_PRINT( TRACE_LEVEL_INFORMATION, IPOIB_DBG_SHUTTER,\r
+                       ("Shutter wasn't shut, state = %d\n", p_adapter->ipoib_state));\r
        }\r
-       else {\r
-               IPOIB_PRINT( TRACE_LEVEL_WARNING, IPOIB_DBG_RECV,\r
-               ("*****Shutter wasn't shut, state = %d*****\n", p_adapter->ipoib_state));\r
-       }\r
+       \r
        IPOIB_EXIT( IPOIB_DBG_INIT );\r
        return IB_SUCCESS;\r
 }\r