]> err.no Git - linux-2.6/commitdiff
[PATCH] kobject/hotplug split - kobject add/remove
authorkay.sievers@vrfy.org <kay.sievers@vrfy.org>
Tue, 19 Apr 2005 04:57:34 +0000 (21:57 -0700)
committerGreg KH <greg@press.kroah.org>
Tue, 19 Apr 2005 04:57:34 +0000 (21:57 -0700)
kobject_add() and kobject_del() don't emit hotplug events anymore.
The user should do it itself if it has finished populating the device
directory.

Signed-off-by: Kay Sievers <kay.sievers@vrfy.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
lib/kobject.c

index ff9491986b381ccb1515a4b3a5dab8e28878d22c..5df8441c44e7d5decdabbfe1f83d8da5d82289fa 100644 (file)
@@ -184,8 +184,6 @@ int kobject_add(struct kobject * kobj)
                unlink(kobj);
                if (parent)
                        kobject_put(parent);
-       } else {
-               kobject_hotplug(kobj, KOBJ_ADD);
        }
 
        return error;
@@ -207,7 +205,8 @@ int kobject_register(struct kobject * kobj)
                        printk("kobject_register failed for %s (%d)\n",
                               kobject_name(kobj),error);
                        dump_stack();
-               }
+               } else
+                       kobject_hotplug(kobj, KOBJ_ADD);
        } else
                error = -EINVAL;
        return error;
@@ -301,7 +300,6 @@ int kobject_rename(struct kobject * kobj, char *new_name)
 
 void kobject_del(struct kobject * kobj)
 {
-       kobject_hotplug(kobj, KOBJ_REMOVE);
        sysfs_remove_dir(kobj);
        unlink(kobj);
 }
@@ -314,6 +312,7 @@ void kobject_del(struct kobject * kobj)
 void kobject_unregister(struct kobject * kobj)
 {
        pr_debug("kobject %s: unregistering\n",kobject_name(kobj));
+       kobject_hotplug(kobj, KOBJ_REMOVE);
        kobject_del(kobj);
        kobject_put(kobj);
 }