Version: 1
-Previous: 96b795bed356859163908c85fd98cf2e932e0f0b
-Head: 249df8f4f74e7c84ff37057d8b9657e815b87110
+Previous: 2f7f6263fb356b5296dad8bb71f1c8d92923e9ff
+Head: 72e533940aced7ffb2ceeebc5c5b7cdc09a08b7e
Applied:
dapl-update: 2df1438b75e945d48a63fbda74079a77978f315d
cma-priv-data: 83299e9a772068a302a4d39ff4e7ba45d4bd26b5
ibal-disc: 203f6240e2d31e82f784623a8b5a514fdf2f1f7c
- ibal-drep: cbeac59b641ada456b6f329bf1df0c24f2f6ac46
- refresh-temp: 249df8f4f74e7c84ff37057d8b9657e815b87110
+ ibal-drep: 72e533940aced7ffb2ceeebc5c5b7cdc09a08b7e
Unapplied:
dapl-cookie: dba881d08766e12ba2863c4f57b6a1877b5a8ecf
dapl-evd: ede541a6ba3d7d2a69f95b691f69eb9a315bb75d
Bottom: f7f2d544218a134f3c4d7ef793f728f1ee392dbf
-Top: f7f2d544218a134f3c4d7ef793f728f1ee392dbf
+Top: d03a34e5e593ef8cb83cb0c43ec3bc6d468d5ee1
Author: Sean Hefty <sean.hefty@intel.com>
Date: 2010-09-23 12:25:29 -0700
---
-
+diff --git a/trunk/core/al/kernel/al_cm_cep.c b/trunk/core/al/kernel/al_cm_cep.c
+index 6255846..ee360d1 100644
+--- a/trunk/core/al/kernel/al_cm_cep.c
++++ b/trunk/core/al/kernel/al_cm_cep.c
+@@ -1586,6 +1586,33 @@ done:
+ AL_EXIT( AL_DBG_CM );\r
+ }\r
+ \r
++static void\r
++__issue_drep(\r
++ IN cep_agent_t* const p_port_cep,\r
++ IN ib_mad_element_t* const p_mad )\r
++{\r
++ mad_cm_drep_t *p_drep;\r
++ uint32_t comm_id;\r
++\r
++ AL_ENTER( AL_DBG_CM );\r
++\r
++ p_drep = (mad_cm_drep_t *) p_mad->p_mad_buf;\r
++\r
++ p_drep->hdr.attr_id = CM_DREP_ATTR_ID;\r
++ comm_id = p_drep->remote_comm_id;\r
++ p_drep->remote_comm_id = p_drep->local_comm_id;\r
++ p_drep->local_comm_id = comm_id;\r
++ conn_drep_set_pdata( NULL, 0, p_drep );\r
++\r
++ p_mad->retry_cnt = 0;\r
++ p_mad->send_opt = 0;\r
++ p_mad->timeout_ms = 0;\r
++ p_mad->resp_expected = FALSE;\r
++\r
++ __cep_send_mad( p_port_cep, p_mad );\r
++\r
++ AL_EXIT( AL_DBG_CM );\r
++}\r
+ \r
+ static void\r
+ __dreq_handler(\r
+@@ -1610,8 +1637,14 @@ __dreq_handler(
+ /* Find the connection by connection IDs. */\r
+ KeAcquireInStackQueuedSpinLockAtDpcLevel( &gp_cep_mgr->lock, &hdl );\r
+ p_cep = __lookup_cep( NULL, p_dreq->remote_comm_id );\r
+- if( !p_cep ||\r
+- p_cep->remote_comm_id != p_dreq->local_comm_id ||\r
++ if( !p_cep )\r
++ {\r
++ __issue_drep( p_port_cep, p_mad );\r
++ AL_EXIT( AL_DBG_CM );\r
++ return;\r
++ }\r
++\r
++ if( p_cep->remote_comm_id != p_dreq->local_comm_id ||\r
+ p_cep->local_qpn != conn_dreq_get_remote_qpn( p_dreq ) )\r
+ {\r
+ AL_PRINT( TRACE_LEVEL_INFORMATION, AL_DBG_CM, ("DREQ received that could not be matched.\n") );\r
+diff --git a/trunk/ulp/dapl2/dapl/ibal/dapl_ibal_cm.c b/trunk/ulp/dapl2/dapl/ibal/dapl_ibal_cm.c
+index 37e158b..a638571 100644
+--- a/trunk/ulp/dapl2/dapl/ibal/dapl_ibal_cm.c
++++ b/trunk/ulp/dapl2/dapl/ibal/dapl_ibal_cm.c
+@@ -228,7 +228,8 @@ dapli_ib_cm_dreq_cb (
+ {
+ DAPL_EP *ep_ptr;
+ dp_ib_cm_handle_t cm_ptr;
+-
++ enum dapl_ibal_cm_state state;
++
+ dapl_os_assert (p_cm_dreq_rec);
+
+ ep_ptr = (DAPL_EP * __ptr64) p_cm_dreq_rec->qp_context;
+@@ -275,17 +276,17 @@ dapli_ib_cm_dreq_cb (
+
+ ep_ptr->param.ep_state = DAT_EP_STATE_DISCONNECT_PENDING;
+
++ state = cm_ptr->state;
+ if (cm_ptr->state == IBAL_CM_CONNECT)
+ {
+ cm_ptr->state = IBAL_CM_DREQ;
+ cm_ptr->ib_cm = p_cm_dreq_rec->h_cm_dreq;
+ }
+- else
+- {
+- dapli_send_ib_cm_drep(p_cm_dreq_rec->h_cm_dreq);
+- }
+ dapl_os_unlock (&ep_ptr->header.lock);
+
++ if (state == IBAL_CM_DISCONNECT)
++ dapli_send_ib_cm_drep(p_cm_dreq_rec->h_cm_dreq);
++
+ if (ep_ptr->cr_ptr)
+ {
+ /* passive side */
+++ /dev/null
-Bottom: f7f2d544218a134f3c4d7ef793f728f1ee392dbf
-Top: d03a34e5e593ef8cb83cb0c43ec3bc6d468d5ee1
-Author: Sean Hefty <sean.hefty@intel.com>
-Date: 2010-09-23 13:59:43 -0700
-
-Refresh of ibal-drep
-
----
-
-diff --git a/trunk/core/al/kernel/al_cm_cep.c b/trunk/core/al/kernel/al_cm_cep.c
-index 6255846..ee360d1 100644
---- a/trunk/core/al/kernel/al_cm_cep.c
-+++ b/trunk/core/al/kernel/al_cm_cep.c
-@@ -1586,6 +1586,33 @@ done:
- AL_EXIT( AL_DBG_CM );\r
- }\r
- \r
-+static void\r
-+__issue_drep(\r
-+ IN cep_agent_t* const p_port_cep,\r
-+ IN ib_mad_element_t* const p_mad )\r
-+{\r
-+ mad_cm_drep_t *p_drep;\r
-+ uint32_t comm_id;\r
-+\r
-+ AL_ENTER( AL_DBG_CM );\r
-+\r
-+ p_drep = (mad_cm_drep_t *) p_mad->p_mad_buf;\r
-+\r
-+ p_drep->hdr.attr_id = CM_DREP_ATTR_ID;\r
-+ comm_id = p_drep->remote_comm_id;\r
-+ p_drep->remote_comm_id = p_drep->local_comm_id;\r
-+ p_drep->local_comm_id = comm_id;\r
-+ conn_drep_set_pdata( NULL, 0, p_drep );\r
-+\r
-+ p_mad->retry_cnt = 0;\r
-+ p_mad->send_opt = 0;\r
-+ p_mad->timeout_ms = 0;\r
-+ p_mad->resp_expected = FALSE;\r
-+\r
-+ __cep_send_mad( p_port_cep, p_mad );\r
-+\r
-+ AL_EXIT( AL_DBG_CM );\r
-+}\r
- \r
- static void\r
- __dreq_handler(\r
-@@ -1610,8 +1637,14 @@ __dreq_handler(
- /* Find the connection by connection IDs. */\r
- KeAcquireInStackQueuedSpinLockAtDpcLevel( &gp_cep_mgr->lock, &hdl );\r
- p_cep = __lookup_cep( NULL, p_dreq->remote_comm_id );\r
-- if( !p_cep ||\r
-- p_cep->remote_comm_id != p_dreq->local_comm_id ||\r
-+ if( !p_cep )\r
-+ {\r
-+ __issue_drep( p_port_cep, p_mad );\r
-+ AL_EXIT( AL_DBG_CM );\r
-+ return;\r
-+ }\r
-+\r
-+ if( p_cep->remote_comm_id != p_dreq->local_comm_id ||\r
- p_cep->local_qpn != conn_dreq_get_remote_qpn( p_dreq ) )\r
- {\r
- AL_PRINT( TRACE_LEVEL_INFORMATION, AL_DBG_CM, ("DREQ received that could not be matched.\n") );\r
-diff --git a/trunk/ulp/dapl2/dapl/ibal/dapl_ibal_cm.c b/trunk/ulp/dapl2/dapl/ibal/dapl_ibal_cm.c
-index 37e158b..a638571 100644
---- a/trunk/ulp/dapl2/dapl/ibal/dapl_ibal_cm.c
-+++ b/trunk/ulp/dapl2/dapl/ibal/dapl_ibal_cm.c
-@@ -228,7 +228,8 @@ dapli_ib_cm_dreq_cb (
- {
- DAPL_EP *ep_ptr;
- dp_ib_cm_handle_t cm_ptr;
--
-+ enum dapl_ibal_cm_state state;
-+
- dapl_os_assert (p_cm_dreq_rec);
-
- ep_ptr = (DAPL_EP * __ptr64) p_cm_dreq_rec->qp_context;
-@@ -275,17 +276,17 @@ dapli_ib_cm_dreq_cb (
-
- ep_ptr->param.ep_state = DAT_EP_STATE_DISCONNECT_PENDING;
-
-+ state = cm_ptr->state;
- if (cm_ptr->state == IBAL_CM_CONNECT)
- {
- cm_ptr->state = IBAL_CM_DREQ;
- cm_ptr->ib_cm = p_cm_dreq_rec->h_cm_dreq;
- }
-- else
-- {
-- dapli_send_ib_cm_drep(p_cm_dreq_rec->h_cm_dreq);
-- }
- dapl_os_unlock (&ep_ptr->header.lock);
-
-+ if (state == IBAL_CM_DISCONNECT)
-+ dapli_send_ib_cm_drep(p_cm_dreq_rec->h_cm_dreq);
-+
- if (ep_ptr->cr_ptr)
- {
- /* passive side */