(unsigned long) cm_id_priv->msg, timeout)) 
cm_id_priv->msg, timeout)) 
static int cm_mra_handler(struct cm_work *work){	struct cm_id_private *cm_id_priv;	struct cm_mra_msg *mra_msg;	unsigned long flags;	int timeout, ret;	mra_msg = (struct cm_mra_msg *)work->mad_recv_wc->recv_buf.mad;	cm_id_priv = cm_acquire_mraed_id(mra_msg);	if (!cm_id_priv)		return -EINVAL;	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)) +		  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) {	case IB_CM_REQ_SENT:		if (cm_mra_get_msg_mraed(mra_msg) != CM_MSG_RESPONSE_REQ ||		    ib_modify_mad(cm_id_priv->av.port->mad_agent,				  (unsigned long) cm_id_priv->msg, timeout))			goto out;		cm_id_priv->id.state = IB_CM_MRA_REQ_RCVD;		break;	case IB_CM_REP_SENT:		if (cm_mra_get_msg_mraed(mra_msg) != CM_MSG_RESPONSE_REP ||		    ib_modify_mad(cm_id_priv->av.port->mad_agent,				  (unsigned long) cm_id_priv->msg, timeout))			goto out;		cm_id_priv->id.state = IB_CM_MRA_REP_RCVD;		break;	case IB_CM_ESTABLISHED:		if (cm_mra_get_msg_mraed(mra_msg) != CM_MSG_RESPONSE_OTHER ||		    cm_id_priv->id.lap_state != IB_CM_LAP_SENT ||		    ib_modify_mad(cm_id_priv->av.port->mad_agent,				  (unsigned long) cm_id_priv->msg, timeout))			goto out;		cm_id_priv->id.lap_state = IB_CM_MRA_LAP_RCVD;		break;	default:		goto out;	}	cm_id_priv->msg->context[1] = (void *) (unsigned long)				      cm_id_priv->id.state;	ret = atomic_inc_and_test(&cm_id_priv->work_count);	if (!ret)		list_add_tail(&work->list, &cm_id_priv->work_list);	spin_unlock_irqrestore(&cm_id_priv->lock, flags);	if (ret)		cm_process_work(cm_id_priv, work);	else		cm_deref_id(cm_id_priv);	return 0;out:	spin_unlock_irqrestore(&cm_id_priv->lock, flags);	cm_deref_id(cm_id_priv);	return -EINVAL;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/34816ad98efe4d47ffd858a0345321f9d85d9420/cm.c/buggy/drivers/infiniband/core/cm.c