list_del_init(&dev->node); up_write(&devices_subsys.rwsem); 
klist_remove(&dev->knode_parent); 
void device_del(struct device * dev){	struct device * parent = dev->parent;	down_write(&devices_subsys.rwsem);	if (parent)		list_del_init(&dev->node);	up_write(&devices_subsys.rwsem);	/* Notify the platform of the removal, in case they	 * need to do anything...	 */	if (platform_notify_remove)		platform_notify_remove(dev);	bus_remove_device(dev);	device_pm_remove(dev);	kobject_hotplug(&dev->kobj, KOBJ_REMOVE);	kobject_del(&dev->kobj);	if (parent)		put_device(parent);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/36239577cfb6b9a7c111209536b54200b0252ebf/core.c/clean/drivers/base/core.c