mcast->backoff); 
mcast->backoff * HZ); 
static void ipoib_mcast_join(struct net_device *dev, struct ipoib_mcast *mcast,			     int create){	struct ipoib_dev_priv *priv = netdev_priv(dev);	struct ib_sa_mcmember_rec rec = {		.join_state = 1	};	ib_sa_comp_mask comp_mask;	int ret = 0;	ipoib_dbg_mcast(priv, "joining MGID " IPOIB_GID_FMT "\n",			IPOIB_GID_ARG(mcast->mcmember.mgid));	rec.mgid     = mcast->mcmember.mgid;	rec.port_gid = priv->local_gid;	rec.pkey     = cpu_to_be16(priv->pkey);	comp_mask =		IB_SA_MCMEMBER_REC_MGID		|		IB_SA_MCMEMBER_REC_PORT_GID	|		IB_SA_MCMEMBER_REC_PKEY		|		IB_SA_MCMEMBER_REC_JOIN_STATE;	if (create) {		comp_mask |=			IB_SA_MCMEMBER_REC_QKEY		|			IB_SA_MCMEMBER_REC_SL		|			IB_SA_MCMEMBER_REC_FLOW_LABEL	|			IB_SA_MCMEMBER_REC_TRAFFIC_CLASS;		rec.qkey	  = priv->broadcast->mcmember.qkey;		rec.sl		  = priv->broadcast->mcmember.sl;		rec.flow_label	  = priv->broadcast->mcmember.flow_label;		rec.traffic_class = priv->broadcast->mcmember.traffic_class;	}	ret = ib_sa_mcmember_rec_set(priv->ca, priv->port, &rec, comp_mask,				     mcast->backoff * 1000, GFP_ATOMIC,				     ipoib_mcast_join_complete,				     mcast, &mcast->query);	if (ret < 0) {		ipoib_warn(priv, "ib_sa_mcmember_rec_set failed, status %d\n", ret);		mcast->backoff *= 2;		if (mcast->backoff > IPOIB_MAX_BACKOFF_SECONDS)			mcast->backoff = IPOIB_MAX_BACKOFF_SECONDS;		down(&mcast_mutex);		if (test_bit(IPOIB_MCAST_RUN, &priv->flags))			queue_delayed_work(ipoib_workqueue,					   &priv->mcast_task,					   mcast->backoff);		up(&mcast_mutex);	} else		mcast->query_id = ret;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/ce5b65cc9626feac0d4ffb96f798407e50c45575/ipoib_multicast.c/clean/drivers/infiniband/ulp/ipoib/ipoib_multicast.c