up(&dev->sem); 
int driver_probe_device(struct device_driver * drv, struct device * dev){	if (drv->bus->match && !drv->bus->match(dev, drv))		return -ENODEV;	dev->driver = drv;	if (drv->probe) {		int error = drv->probe(dev);		if (error) {			dev->driver = NULL;			return error;		}	}	device_bind_driver(dev);	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/af70316af182f4716cc5eec7e0d27fc731d164bd/bus.c/clean/drivers/base/bus.c