diff options
Diffstat (limited to 'drivers/bcma/main.c')
| -rw-r--r-- | drivers/bcma/main.c | 12 | 
1 files changed, 5 insertions, 7 deletions
diff --git a/drivers/bcma/main.c b/drivers/bcma/main.c index 6535614a7dc1..c6d6ba0d00b1 100644 --- a/drivers/bcma/main.c +++ b/drivers/bcma/main.c @@ -27,7 +27,7 @@ static DEFINE_MUTEX(bcma_buses_mutex);  static int bcma_bus_match(struct device *dev, struct device_driver *drv);  static int bcma_device_probe(struct device *dev); -static int bcma_device_remove(struct device *dev); +static void bcma_device_remove(struct device *dev);  static int bcma_device_uevent(struct device *dev, struct kobj_uevent_env *env);  static ssize_t manuf_show(struct device *dev, struct device_attribute *attr, char *buf) @@ -236,6 +236,7 @@ EXPORT_SYMBOL(bcma_core_irq);  void bcma_prepare_core(struct bcma_bus *bus, struct bcma_device *core)  { +	device_initialize(&core->dev);  	core->dev.release = bcma_release_core_dev;  	core->dev.bus = &bcma_bus_type;  	dev_set_name(&core->dev, "bcma%d:%d", bus->num, core->core_index); @@ -277,11 +278,10 @@ static void bcma_register_core(struct bcma_bus *bus, struct bcma_device *core)  {  	int err; -	err = device_register(&core->dev); +	err = device_add(&core->dev);  	if (err) {  		bcma_err(bus, "Could not register dev for core 0x%03X\n",  			 core->id.id); -		put_device(&core->dev);  		return;  	}  	core->dev_registered = true; @@ -372,7 +372,7 @@ void bcma_unregister_cores(struct bcma_bus *bus)  	/* Now noone uses internally-handled cores, we can free them */  	list_for_each_entry_safe(core, tmp, &bus->cores, list) {  		list_del(&core->list); -		kfree(core); +		put_device(&core->dev);  	}  } @@ -614,7 +614,7 @@ static int bcma_device_probe(struct device *dev)  	return err;  } -static int bcma_device_remove(struct device *dev) +static void bcma_device_remove(struct device *dev)  {  	struct bcma_device *core = container_of(dev, struct bcma_device, dev);  	struct bcma_driver *adrv = container_of(dev->driver, struct bcma_driver, @@ -623,8 +623,6 @@ static int bcma_device_remove(struct device *dev)  	if (adrv->remove)  		adrv->remove(core);  	put_device(dev); - -	return 0;  }  static int bcma_device_uevent(struct device *dev, struct kobj_uevent_env *env)  | 
