[openib-general] [PATCH] IPoIB: Fix SA client retransmission strategy

Hal Rosenstock halr at voltaire.com
Sat Sep 17 08:06:12 PDT 2005


IPoIB: Fix SA client retransmission strategy

Signed-off-by: Hal Rosenstock <halr at voltaire.com>

Index: ipoib_multicast.c
===================================================================
--- ipoib_multicast.c	(revision 3455)
+++ ipoib_multicast.c	(working copy)
@@ -145,7 +145,7 @@ static struct ipoib_mcast *ipoib_mcast_a
 
 	mcast->dev = dev;
 	mcast->created = jiffies;
-	mcast->backoff = HZ;
+	mcast->backoff = 1;
 	mcast->logcount = 0;
 
 	INIT_LIST_HEAD(&mcast->list);
@@ -366,7 +366,7 @@ static int ipoib_mcast_sendonly_join(str
 				     IB_SA_MCMEMBER_REC_PORT_GID	|
 				     IB_SA_MCMEMBER_REC_PKEY		|
 				     IB_SA_MCMEMBER_REC_JOIN_STATE,
-				     1000, GFP_ATOMIC,
+				     mcast->backoff * 1000, GFP_ATOMIC,
 				     ipoib_mcast_sendonly_join_complete,
 				     mcast, &mcast->query);
 	if (ret < 0) {
@@ -396,7 +396,7 @@ static void ipoib_mcast_join_complete(in
 			IPOIB_GID_ARG(mcast->mcmember.mgid), status);
 
 	if (!status && !ipoib_mcast_join_finish(mcast, mcmember)) {
-		mcast->backoff = HZ;
+		mcast->backoff = 1;
 		down(&mcast_mutex);
 		if (test_bit(IPOIB_MCAST_RUN, &priv->flags))
 			queue_work(ipoib_workqueue, &priv->mcast_task);
@@ -496,7 +496,7 @@ static void ipoib_mcast_join(struct net_
 		if (test_bit(IPOIB_MCAST_RUN, &priv->flags))
 			queue_delayed_work(ipoib_workqueue,
 					   &priv->mcast_task,
-					   mcast->backoff);
+					   mcast->backoff * HZ);
 		up(&mcast_mutex);
 	} else
 		mcast->query_id = ret;






More information about the general mailing list