if (!retry_send(mad_send_wr)) continue;  
static void timeout_sends(void *data){	struct ib_mad_agent_private *mad_agent_priv;	struct ib_mad_send_wr_private *mad_send_wr;	struct ib_mad_send_wc mad_send_wc;	unsigned long flags, delay;	mad_agent_priv = (struct ib_mad_agent_private *)data;	mad_send_wc.status = IB_WC_RESP_TIMEOUT_ERR;	mad_send_wc.vendor_err = 0;	spin_lock_irqsave(&mad_agent_priv->lock, flags);	while (!list_empty(&mad_agent_priv->wait_list)) {		mad_send_wr = list_entry(mad_agent_priv->wait_list.next,					 struct ib_mad_send_wr_private,					 agent_list);		if (time_after(mad_send_wr->timeout, jiffies)) {			delay = mad_send_wr->timeout - jiffies;			if ((long)delay <= 0)				delay = 1;			queue_delayed_work(mad_agent_priv->qp_info->					   port_priv->wq,					   &mad_agent_priv->timed_work, delay);			break;		}		list_del(&mad_send_wr->agent_list);		spin_unlock_irqrestore(&mad_agent_priv->lock, flags);		mad_send_wc.wr_id = mad_send_wr->wr_id;		mad_agent_priv->agent.send_handler(&mad_agent_priv->agent,						   &mad_send_wc);		kfree(mad_send_wr);		atomic_dec(&mad_agent_priv->refcount);		spin_lock_irqsave(&mad_agent_priv->lock, flags);	}	spin_unlock_irqrestore(&mad_agent_priv->lock, flags);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/f75b7a5294949cd1b7bc301e3087c7bb78e22520/mad.c/buggy/drivers/infiniband/core/mad.c