struct bus_type * bus = drv->bus; struct list_head * entry; int error;  if (!bus->match) return;  list_for_each(entry, &bus->devices.list) { struct device * dev = container_of(entry, struct device, bus_list); if (!dev->driver) { error = driver_probe_device(drv, dev); if (error && (error != -ENODEV)) /* driver matched but the probe failed */ printk(KERN_WARNING "%s: probe of %s failed with error %d\n", drv->name, dev->bus_id, error); } } 
bus_for_each_dev(drv->bus, NULL, drv, __driver_attach); 
void driver_attach(struct device_driver * drv){	struct bus_type * bus = drv->bus;	struct list_head * entry;	int error;	if (!bus->match)		return;	list_for_each(entry, &bus->devices.list) {		struct device * dev = container_of(entry, struct device, bus_list);		if (!dev->driver) {			error = driver_probe_device(drv, dev);			if (error && (error != -ENODEV))				/* driver matched but the probe failed */				printk(KERN_WARNING				    "%s: probe of %s failed with error %d\n",				    drv->name, dev->bus_id, error);		}	}}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/2287c322b61fced7e0c326a1a9606aa73147e3df/dd.c/clean/drivers/base/dd.c