X-Git-Url: http://git.monstr.eu/?a=blobdiff_plain;f=drivers%2Fbcma%2Fmain.c;h=c6d6ba0d00b1ed2250e31eadb7f5a6ba9c158872;hb=634135a07b887a8ad8904da8c147407650747a38;hp=e076630d17bd1df938e259d7a54a4f90714d3800;hpb=fc7a6209d5710618eb4f72a77cd81b8d694ecf89;p=linux-2.6-microblaze.git diff --git a/drivers/bcma/main.c b/drivers/bcma/main.c index e076630d17bd..c6d6ba0d00b1 100644 --- a/drivers/bcma/main.c +++ b/drivers/bcma/main.c @@ -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); } }