Commit ce5b65cc authored by Hal Rosenstock's avatar Hal Rosenstock Committed by Roland Dreier
Browse files

[PATCH] IPoIB: Fix SA client retransmission strategy



We got a little mixed up with what the backoff member holds in the
IPoIB multicast group structure: sometimes it was used as a number of
seconds, and sometimes it was used as a number of jiffies.  Fix the
code so that backoff is always in seconds.

Signed-off-by: default avatarHal Rosenstock <halr@voltaire.com>
Signed-off-by: default avatarRoland Dreier <rolandd@cisco.com>
parent d6cff021
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -145,7 +145,7 @@ static struct ipoib_mcast *ipoib_mcast_alloc(struct net_device *dev,

	mcast->dev = dev;
	mcast->created = jiffies;
	mcast->backoff = HZ;
	mcast->backoff = 1;
	mcast->logcount = 0;

	INIT_LIST_HEAD(&mcast->list);
@@ -396,7 +396,7 @@ static void ipoib_mcast_join_complete(int status,
			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_device *dev, struct ipoib_mcast *mcast,
		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;