if (!mad_send_wr->timeout || mad_send_wr->refcount > 1) 
if (active) 
int ib_modify_mad(struct ib_mad_agent *mad_agent, u64 wr_id, u32 timeout_ms){	struct ib_mad_agent_private *mad_agent_priv;	struct ib_mad_send_wr_private *mad_send_wr;	unsigned long flags;	mad_agent_priv = container_of(mad_agent, struct ib_mad_agent_private,				      agent);	spin_lock_irqsave(&mad_agent_priv->lock, flags);	mad_send_wr = find_send_by_wr_id(mad_agent_priv, wr_id);	if (!mad_send_wr || mad_send_wr->status != IB_WC_SUCCESS) {		spin_unlock_irqrestore(&mad_agent_priv->lock, flags);		return -EINVAL;	}	if (!timeout_ms) {		mad_send_wr->status = IB_WC_WR_FLUSH_ERR;		mad_send_wr->refcount -= (mad_send_wr->timeout > 0);	}	mad_send_wr->send_wr.wr.ud.timeout_ms = timeout_ms;	if (!mad_send_wr->timeout || mad_send_wr->refcount > 1)		mad_send_wr->timeout = msecs_to_jiffies(timeout_ms);	else		ib_reset_mad_timeout(mad_send_wr, timeout_ms);	spin_unlock_irqrestore(&mad_agent_priv->lock, flags);	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/cabe3cbcbb3b09637b9e706c49eadb180fca057e/mad.c/buggy/drivers/infiniband/core/mad.c