diff options
-rw-r--r-- | drivers/base/bus.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/base/bus.c b/drivers/base/bus.c index 937fc100b64a..aea579365f6d 100644 --- a/drivers/base/bus.c +++ b/drivers/base/bus.c | |||
@@ -643,15 +643,12 @@ int bus_add_driver(struct device_driver *drv) | |||
643 | if (!priv) | 643 | if (!priv) |
644 | return -ENOMEM; | 644 | return -ENOMEM; |
645 | 645 | ||
646 | error = kobject_set_name(&priv->kobj, "%s", drv->name); | ||
647 | if (error) | ||
648 | goto out_put_bus; | ||
649 | priv->kobj.kset = bus->p->drivers_kset; | ||
650 | priv->kobj.ktype = &driver_ktype; | ||
651 | klist_init(&priv->klist_devices, NULL, NULL); | 646 | klist_init(&priv->klist_devices, NULL, NULL); |
652 | priv->driver = drv; | 647 | priv->driver = drv; |
653 | drv->p = priv; | 648 | drv->p = priv; |
654 | error = kobject_register(&priv->kobj); | 649 | priv->kobj.kset = bus->p->drivers_kset; |
650 | error = kobject_init_and_add(&priv->kobj, &driver_ktype, NULL, | ||
651 | "%s", drv->name); | ||
655 | if (error) | 652 | if (error) |
656 | goto out_put_bus; | 653 | goto out_put_bus; |
657 | 654 | ||
@@ -681,6 +678,7 @@ int bus_add_driver(struct device_driver *drv) | |||
681 | __FUNCTION__, drv->name); | 678 | __FUNCTION__, drv->name); |
682 | } | 679 | } |
683 | 680 | ||
681 | kobject_uevent(&priv->kobj, KOBJ_ADD); | ||
684 | return error; | 682 | return error; |
685 | out_unregister: | 683 | out_unregister: |
686 | kobject_unregister(&priv->kobj); | 684 | kobject_unregister(&priv->kobj); |