down_read(&bus->subsys.rwsem); ret = __bus_for_each_dev(bus, start, data, fn); up_read(&bus->subsys.rwsem); return ret; 
if (!bus) return -EINVAL;  klist_iter_init_node(&bus->klist_devices, &i, (start ? &start->knode_bus : NULL)); while ((dev = next_device(&i)) && !error) error = fn(dev, data); klist_iter_exit(&i); return error; 
int bus_for_each_dev(struct bus_type * bus, struct device * start,		     void * data, int (*fn)(struct device *, void *)){	int ret;	down_read(&bus->subsys.rwsem);	ret = __bus_for_each_dev(bus, start, data, fn);	up_read(&bus->subsys.rwsem);	return ret;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/465c7a3a3a5aabcedd2e43612cac5a12f23da19a/bus.c/clean/drivers/base/bus.c