Sean Hi,
Sorry for the corrupted mail I sent before - had some problems with the
mail client.
SDP needs to be notified when CM exits the TIMEWAIT state.
CM does notify the CMA but CMA doesn't pass it to the upper layer.
Below is a patch for the CMA code. I wasn't sure if it is ok to set
CMA_DISCONNECT in the IB_CM_TIMEWAIT_EXIT instead of doing it in the
IB_CM_DREQ_RECEIVED/IB_CM_DREP_RECEIVED as it is done today. Instead
I changed the check at the beginning of cma_ib_handler() as you can
see in the patch.
Signed-off-by: Amir Vadai <[EMAIL PROTECTED]>
--- include/rdma/rdma_cm.h.orig 2008-06-18 15:04:22.560904000 +0300
+++ include/rdma/rdma_cm.h 2008-06-11 11:55:26.758053000 +0300
@@ -53,7 +53,8 @@ enum rdma_cm_event_type {
RDMA_CM_EVENT_DISCONNECTED,
RDMA_CM_EVENT_DEVICE_REMOVAL,
RDMA_CM_EVENT_MULTICAST_JOIN,
- RDMA_CM_EVENT_MULTICAST_ERROR
+ RDMA_CM_EVENT_MULTICAST_ERROR,
+ RDMA_CM_EVENT_TIMWAIT_EXIT
};
enum rdma_port_space {
--- drivers/infiniband/core/cma.c.orig 2008-06-11 11:24:38.021543000
+0300
+++ drivers/infiniband/core/cma.c 2008-06-18 13:27:08.098747000 +0300
@@ -931,7 +931,8 @@ static int cma_ib_handler(struct ib_cm_i
struct rdma_cm_event event;
int ret = 0;
- if (cma_disable_remove(id_priv, CMA_CONNECT))
+ if ((ib_event->event != IB_CM_TIMEWAIT_EXIT &&
cma_disable_remove(id_priv, CMA_CONNECT)) ||
+ (ib_event->event == IB_CM_TIMEWAIT_EXIT &&
cma_disable_remove(id_priv, CMA_DISCONNECT)))
return 0;
memset(&event, 0, sizeof event);
@@ -967,6 +968,8 @@ static int cma_ib_handler(struct ib_cm_i
event.event = RDMA_CM_EVENT_DISCONNECTED;
break;
case IB_CM_TIMEWAIT_EXIT:
+ event.event = RDMA_CM_EVENT_TIMWAIT_EXIT;
+ break;
case IB_CM_MRA_RECEIVED:
/* ignore event */
goto out;
--
Amir Vadai
Mellanox Technologies LTD.
SW
Phone: +972 (3) 625 9500 (ext.539)
Mobile: +972 (52) 632 4714
E-mail: [EMAIL PROTECTED]
----------------------------------------------------------------------
Emails belong on computers, trees belong in forests; if you must print
this, do it on recycled paper.
http://www.greenpeace.org/international/
----------------------------------------------------------------------
Disclaimer added by CodeTwo Exchange Rules
http://www.codetwo.com
_______________________________________________
general mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general
To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general