klist_add_tail(&bus->klist_drivers, &drv->knode_bus); 
int bus_add_driver(struct device_driver * drv){	struct bus_type * bus = get_bus(drv->bus);	int error = 0;	if (bus) {		pr_debug("bus %s: add driver %s\n", bus->name, drv->name);		error = kobject_set_name(&drv->kobj, "%s", drv->name);		if (error) {			put_bus(bus);			return error;		}		drv->kobj.kset = &bus->drivers;		if ((error = kobject_register(&drv->kobj))) {			put_bus(bus);			return error;		}		down_write(&bus->subsys.rwsem);		driver_attach(drv);		up_write(&bus->subsys.rwsem);		module_add_driver(drv->owner, drv);		driver_add_attrs(bus, drv);	}	return error;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/38fdac3cdce276554b4484a41f8ec2daf81cb2ff/bus.c/clean/drivers/base/bus.c