/* TODO: send abort. */ 
static void recv_timeout_handler(void *data){	struct mad_rmpp_recv *rmpp_recv = data;	struct ib_mad_recv_wc *rmpp_wc;	unsigned long flags;	spin_lock_irqsave(&rmpp_recv->agent->lock, flags);	if (rmpp_recv->state != RMPP_STATE_ACTIVE) {		spin_unlock_irqrestore(&rmpp_recv->agent->lock, flags);		return;	}	rmpp_recv->state = RMPP_STATE_TIMEOUT;	list_del(&rmpp_recv->list);	spin_unlock_irqrestore(&rmpp_recv->agent->lock, flags);	/* TODO: send abort. */	rmpp_wc = rmpp_recv->rmpp_wc;	destroy_rmpp_recv(rmpp_recv);	ib_free_recv_mad(rmpp_wc);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/fe9e08e17af414a5fd8f3141b0fd88677f81a883/mad_rmpp.c/buggy/drivers/infiniband/core/mad_rmpp.c