]> git.openfabrics.org - ~ardavis/dapl.git/commitdiff
r7676: OFED dapl -- to trunk 7346
authorTziporet Koren <tziporet@mellanox.co.il>
Mon, 5 Jun 2006 11:49:47 +0000 (11:49 +0000)
committerTziporet Koren <tziporet@mellanox.co.il>
Mon, 5 Jun 2006 11:49:47 +0000 (11:49 +0000)
dapl/common/dapl_ep_create.c
dapl/openib_cma/dapl_ib_cm.c

index e688543352f5ea81df80576623ec03d7f0f8bf29..ed878a79203c014b8e523f56eb73b6da4807e0f3 100644 (file)
@@ -310,7 +310,10 @@ dapl_ep_create (
      *
      * N.B. This should really be done by a util routine.
      */
-    dapl_os_atomic_inc (& ((DAPL_EVD *)connect_evd_handle)->evd_ref_count);
+    if (connect_evd_handle != DAT_HANDLE_NULL)
+    {
+       dapl_os_atomic_inc (& ((DAPL_EVD *)connect_evd_handle)->evd_ref_count);
+    }
     /* Optional handles */
     if (recv_evd_handle != DAT_HANDLE_NULL)
     {
index bdc1034fb3f1cd255499628c39dc64c6fd9d1c94..6d8673ba3d6404457ac30e7940210bde7be11b55 100644 (file)
@@ -287,14 +287,24 @@ static void dapli_cm_active_cb(struct dapl_cm_id *conn,
                                             NULL, conn->ep);
                break;
        case RDMA_CM_EVENT_REJECTED:
+       {
+               ib_cm_events_t cm_event;
+
+               /* no device type specified so assume IB for now */
+               if (event->status == 28) /* IB_CM_REJ_CONSUMER_DEFINED */
+                       cm_event = IB_CME_DESTINATION_REJECT_PRIVATE_DATA;
+               else 
+                       cm_event = IB_CME_DESTINATION_REJECT;
+
                dapl_dbg_log(
                        DAPL_DBG_TYPE_WARN,
                        " dapli_cm_active_handler: REJECTED reason=%d\n",       
                        event->status);
-               dapl_evd_connection_callback(conn, IB_CME_DESTINATION_REJECT,
-                                            NULL, conn->ep);
+               
+               dapl_evd_connection_callback(conn, cm_event, NULL, conn->ep);
+               
                break;
-
+       }
        case RDMA_CM_EVENT_ESTABLISHED:
                        
                dapl_dbg_log(DAPL_DBG_TYPE_CM, 
@@ -383,6 +393,14 @@ static void dapli_cm_passive_cb(struct dapl_cm_id *conn,
                break;
 
        case RDMA_CM_EVENT_REJECTED:
+       {
+               ib_cm_events_t cm_event;
+
+               /* no device type specified so assume IB for now */
+               if (event->status == 28) /* IB_CM_REJ_CONSUMER_DEFINED */
+                       cm_event = IB_CME_DESTINATION_REJECT_PRIVATE_DATA;
+               else 
+                       cm_event = IB_CME_DESTINATION_REJECT;
 
                dapl_dbg_log(
                        DAPL_DBG_TYPE_WARN, 
@@ -397,10 +415,11 @@ static void dapli_cm_passive_cb(struct dapl_cm_id *conn,
                                &ipaddr->dst_addr)->sin_addr.s_addr),
                        ntohs(((struct sockaddr_in *)
                                &ipaddr->dst_addr)->sin_port));
-
-               dapls_cr_callback(conn, IB_CME_DESTINATION_REJECT, 
-                                 NULL, conn->sp);
+               
+               dapls_cr_callback(conn, cm_event, NULL, conn->sp);
+               
                break;
+       }
        case RDMA_CM_EVENT_ESTABLISHED:
                
                dapl_dbg_log(DAPL_DBG_TYPE_CM,