if (bus->match) { list_for_each(entry, &bus->drivers.list) { struct device_driver * drv = to_drv(entry); error = driver_probe_device(drv, dev); if (!error) /* success, driver matched */ return 1; if (error != -ENODEV && error != -ENXIO) /* driver matched but the probe failed */ printk(KERN_WARNING "%s: probe of %s failed with error %d\n", drv->name, dev->bus_id, error); } }  return 0; 
return bus_for_each_drv(dev->bus, NULL, dev, __device_attach); 
int device_attach(struct device * dev){ 	struct bus_type * bus = dev->bus;	struct list_head * entry;	int error;	if (dev->driver) {		device_bind_driver(dev);		return 1;	}	if (bus->match) {		list_for_each(entry, &bus->drivers.list) {			struct device_driver * drv = to_drv(entry);			error = driver_probe_device(drv, dev);			if (!error)				/* success, driver matched */				return 1;			if (error != -ENODEV && error != -ENXIO)				/* driver matched but the probe failed */				printk(KERN_WARNING				    "%s: probe of %s failed with error %d\n",				    drv->name, dev->bus_id, error);		}	}	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/2287c322b61fced7e0c326a1a9606aa73147e3df/dd.c/buggy/drivers/base/dd.c