[openib-general] [PATCH] [CM] include packet lifetime in MRA delay

Sean Hefty sean.hefty at intel.com
Wed Jun 29 16:57:17 PDT 2005


The following patch includes the packet lifetime as part of the delay
waiting for a request after receiving an MRA.  Problem pointed out by
Fab Tillier.

Signed-off-by: Sean Hefty <sean.hefty at intel.com>


Index: core/cm.c
===================================================================
--- core/cm.c	(revision 2752)
+++ core/cm.c	(working copy)
@@ -92,6 +92,7 @@ struct cm_av {
 	union ib_gid dgid;
 	struct ib_ah_attr ah_attr;
 	u16 pkey_index;
+	u8 packet_life_time;
 };
 
 struct cm_work {
@@ -296,6 +297,7 @@ static int cm_init_av_by_path(struct ib_
 	av->port = port;
 	cm_set_ah_attr(&av->ah_attr, av->port->port_num, path->dlid,
 		       path->sl, path->slid & 0x7F);
+	av->packet_life_time = path->packet_life_time;
 	return 0;
 }
 
@@ -2164,7 +2166,8 @@ static int cm_mra_handler(struct cm_work
 	work->cm_event.private_data = &mra_msg->private_data;
 	work->cm_event.param.mra_rcvd.service_timeout =
 					cm_mra_get_service_timeout(mra_msg);
-	timeout = cm_convert_to_ms(cm_mra_get_service_timeout(mra_msg));
+	timeout = cm_convert_to_ms(cm_mra_get_service_timeout(mra_msg)) +
+		  cm_convert_to_ms(cm_id_priv->av.packet_life_time);
 
 	spin_lock_irqsave(&cm_id_priv->lock, flags);
 	switch (cm_id_priv->id.state) {






More information about the general mailing list