drv = dev->driver; if (drv) { sysfs_remove_link(&drv->kobj, kobject_name(&dev->kobj)); sysfs_remove_link(&dev->kobj, "driver"); list_del_init(&dev->driver_list); if (drv->remove) drv->remove(dev); dev->driver = NULL; } 
if (drv->remove) drv->remove(dev); dev->driver = NULL; 
void device_release_driver(struct device * dev){	struct device_driver * drv;	down(&dev->sem);	drv = dev->driver;	if (drv) {		sysfs_remove_link(&drv->kobj, kobject_name(&dev->kobj));		sysfs_remove_link(&dev->kobj, "driver");		list_del_init(&dev->driver_list);		if (drv->remove)			drv->remove(dev);		dev->driver = NULL;	}	up(&dev->sem);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/94e7b1c5ff2055571703e38b059afffe17658432/dd.c/buggy/drivers/base/dd.c