void ib_cancel_mad(struct ib_mad_agent *mad_agent, u64 wr_id) 
void ib_cancel_mad(struct ib_mad_agent *mad_agent, u64 wr_id) 
void ib_cancel_mad(struct ib_mad_agent *mad_agent,		  u64 wr_id){	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) {		spin_unlock_irqrestore(&mad_agent_priv->lock, flags);		goto out;	}	if (mad_send_wr->status == IB_WC_SUCCESS)		mad_send_wr->refcount -= (mad_send_wr->timeout > 0);	if (mad_send_wr->refcount != 0) {		mad_send_wr->status = IB_WC_WR_FLUSH_ERR;		spin_unlock_irqrestore(&mad_agent_priv->lock, flags);		goto out;	}	list_del(&mad_send_wr->agent_list);	list_add_tail(&mad_send_wr->agent_list, &mad_agent_priv->canceled_list);	adjust_timeout(mad_agent_priv);	spin_unlock_irqrestore(&mad_agent_priv->lock, flags);	queue_work(mad_agent_priv->qp_info->port_priv->wq,		   &mad_agent_priv->canceled_work);out:	return;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/03b61ad2f29295f019e095d0f490f30a4d678d3f/mad.c/clean/drivers/infiniband/core/mad.c