down_read(&file->agent_mutex); 
down_read(&file->port->mutex); 
static int queue_packet(struct ib_umad_file *file,			struct ib_mad_agent *agent,			struct ib_umad_packet *packet){	int ret = 1;	down_read(&file->agent_mutex);	for (packet->mad.hdr.id = 0;	     packet->mad.hdr.id < IB_UMAD_MAX_AGENTS;	     packet->mad.hdr.id++)		if (agent == file->agent[packet->mad.hdr.id]) {			spin_lock_irq(&file->recv_lock);			list_add_tail(&packet->list, &file->recv_list);			spin_unlock_irq(&file->recv_lock);			wake_up_interruptible(&file->recv_wait);			ret = 0;			break;		}	up_read(&file->agent_mutex);	return ret;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/0c99cb6d5fe77872c5a32cff837c05f70158ce15/user_mad.c/clean/drivers/infiniband/core/user_mad.c