mcast->backoff = HZ; 
mcast->backoff = 1; 
static void ipoib_mcast_join_complete(int status,				      struct ib_sa_mcmember_rec *mcmember,				      void *mcast_ptr){	struct ipoib_mcast *mcast = mcast_ptr;	struct net_device *dev = mcast->dev;	struct ipoib_dev_priv *priv = netdev_priv(dev);	ipoib_dbg_mcast(priv, "join completion for " IPOIB_GID_FMT			" (status %d)\n",			IPOIB_GID_ARG(mcast->mcmember.mgid), status);	if (!status && !ipoib_mcast_join_finish(mcast, mcmember)) {		mcast->backoff = HZ;		down(&mcast_mutex);		if (test_bit(IPOIB_MCAST_RUN, &priv->flags))			queue_work(ipoib_workqueue, &priv->mcast_task);		up(&mcast_mutex);		complete(&mcast->done);		return;	}	if (status == -EINTR) {		complete(&mcast->done);		return;	}	if (status && mcast->logcount++ < 20) {		if (status == -ETIMEDOUT || status == -EINTR) {			ipoib_dbg_mcast(priv, "multicast join failed for " IPOIB_GID_FMT					", status %d\n",					IPOIB_GID_ARG(mcast->mcmember.mgid),					status);		} else {			ipoib_warn(priv, "multicast join failed for "				   IPOIB_GID_FMT ", status %d\n",				   IPOIB_GID_ARG(mcast->mcmember.mgid),				   status);		}	}	mcast->backoff *= 2;	if (mcast->backoff > IPOIB_MAX_BACKOFF_SECONDS)		mcast->backoff = IPOIB_MAX_BACKOFF_SECONDS;	mcast->query = NULL;	down(&mcast_mutex);	if (test_bit(IPOIB_MCAST_RUN, &priv->flags)) {		if (status == -ETIMEDOUT)			queue_work(ipoib_workqueue, &priv->mcast_task);		else			queue_delayed_work(ipoib_workqueue, &priv->mcast_task,					   mcast->backoff * HZ);	} else		complete(&mcast->done);	up(&mcast_mutex);	return;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/ce5b65cc9626feac0d4ffb96f798407e50c45575/ipoib_multicast.c/clean/drivers/infiniband/ulp/ipoib/ipoib_multicast.c