down_read(&interfaces_sem); 
int ipmi_smi_watcher_register(struct ipmi_smi_watcher *watcher){	int i;	down_read(&interfaces_sem);	down_write(&smi_watchers_sem);	list_add(&(watcher->link), &smi_watchers);	for (i = 0; i < MAX_IPMI_INTERFACES; i++) {		if (ipmi_interfaces[i] != NULL) {			watcher->new_smi(i);		}	}	up_write(&smi_watchers_sem);	up_read(&interfaces_sem);	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/393d2cc354d150b8b4bb888a9da7db4c935e12bd/ipmi_msghandler.c/clean/drivers/char/ipmi/ipmi_msghandler.c