i2o_driver_notify_device_add(drv, i2o_dev); 
i2o_driver_notify_device_add(drv, i2o_dev); 
int i2o_driver_register(struct i2o_driver *drv){	struct i2o_controller *c;	int i;	int rc = 0;	unsigned long flags;	osm_debug("Register driver %s\n", drv->name);	if (drv->event) {		drv->event_queue = create_workqueue(drv->name);		if (!drv->event_queue) {			osm_err("Could not initialize event queue for driver "				"%s\n", drv->name);			return -EFAULT;		}		osm_debug("Event queue initialized for driver %s\n", drv->name);	} else		drv->event_queue = NULL;	drv->driver.name = drv->name;	drv->driver.bus = &i2o_bus_type;	spin_lock_irqsave(&i2o_drivers_lock, flags);	for (i = 0; i2o_drivers[i]; i++)		if (i >= i2o_max_drivers) {			osm_err("too many drivers registered, increase "				"max_drivers\n");			spin_unlock_irqrestore(&i2o_drivers_lock, flags);			return -EFAULT;		}	drv->context = i;	i2o_drivers[i] = drv;	spin_unlock_irqrestore(&i2o_drivers_lock, flags);	osm_debug("driver %s gets context id %d\n", drv->name, drv->context);	list_for_each_entry(c, &i2o_controllers, list) {		struct i2o_device *i2o_dev;		i2o_driver_notify_controller_add(drv, c);		list_for_each_entry(i2o_dev, &c->devices, list)			i2o_driver_notify_device_add(drv, i2o_dev);	}	rc = driver_register(&drv->driver);	if (rc)		destroy_workqueue(drv->event_queue);	return rc;};
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/f33213ecf49c98da4e85121b592c3bea8057c2e6/driver.c/buggy/drivers/message/i2o/driver.c