BUG_ON(!(!!device ^ !!mad_agent));  /* Exactly one MUST be (!NULL) */  if (device) { list_for_each_entry(entry, &ib_agent_port_list, port_list) { if (entry->smp_agent->device == device && entry->port_num == port_num) return entry; } } else { list_for_each_entry(entry, &ib_agent_port_list, port_list) { if ((entry->smp_agent == mad_agent) || (entry->perf_mgmt_agent == mad_agent)) return entry; } 
list_for_each_entry(entry, &ib_agent_port_list, port_list) { if (entry->agent[0]->device == device && entry->agent[0]->port_num == port_num) return entry; 
__ib_get_agent_port(struct ib_device *device, int port_num,		    struct ib_mad_agent *mad_agent){	struct ib_agent_port_private *entry;	BUG_ON(!(!!device ^ !!mad_agent));  /* Exactly one MUST be (!NULL) */	if (device) {		list_for_each_entry(entry, &ib_agent_port_list, port_list) {			if (entry->smp_agent->device == device &&			    entry->port_num == port_num)				return entry;		}	} else {		list_for_each_entry(entry, &ib_agent_port_list, port_list) {			if ((entry->smp_agent == mad_agent) ||			    (entry->perf_mgmt_agent == mad_agent))				return entry;		}	}	return NULL;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/34816ad98efe4d47ffd858a0345321f9d85d9420/agent.c/clean/drivers/infiniband/core/agent.c