diff options
author | Greg Kroah-Hartman <gregkh@suse.de> | 2008-02-26 09:36:38 -0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2008-03-04 14:47:05 -0800 |
commit | a4573c488dd531c6e2d308ce8a7413c4a2646207 (patch) | |
tree | 2af19d9bb4472d77d057f2c5170f275cf5757765 | |
parent | d47846c5866b7d98a1173c86a39d810a06647329 (diff) | |
download | linux-a4573c488dd531c6e2d308ce8a7413c4a2646207.tar.gz linux-a4573c488dd531c6e2d308ce8a7413c4a2646207.tar.bz2 linux-a4573c488dd531c6e2d308ce8a7413c4a2646207.zip |
kobject: properly initialize ksets
kset_initialize was calling kobject_init_internal() which didn't
initialize the kobject as well as kobject_init() was. So have
kobject_init() call kobject_init_internal() and move the logic to
initalize the kobject there.
Cc: Kay Sievers <kay.sievers@vrfy.org>
Cc: Hannes Reinecke <hare@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r-- | lib/kobject.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/lib/kobject.c b/lib/kobject.c index d784daeb8571..0d03252f87a8 100644 --- a/lib/kobject.c +++ b/lib/kobject.c @@ -153,6 +153,10 @@ static void kobject_init_internal(struct kobject *kobj) return; kref_init(&kobj->kref); INIT_LIST_HEAD(&kobj->entry); + kobj->state_in_sysfs = 0; + kobj->state_add_uevent_sent = 0; + kobj->state_remove_uevent_sent = 0; + kobj->state_initialized = 1; } @@ -289,13 +293,8 @@ void kobject_init(struct kobject *kobj, struct kobj_type *ktype) dump_stack(); } - kref_init(&kobj->kref); - INIT_LIST_HEAD(&kobj->entry); + kobject_init_internal(kobj); kobj->ktype = ktype; - kobj->state_in_sysfs = 0; - kobj->state_add_uevent_sent = 0; - kobj->state_remove_uevent_sent = 0; - kobj->state_initialized = 1; return; error: |