| From | Greg Kroah-Hartman <> | Subject | [PATCH 01/36] kobject: catch kobjects that are not initialized | Date | Sun, 20 Apr 2008 03:45:31 -0700 |
| |
Add warnings to kobject_put() to catch kobjects that are cleaned up but were never initialized to begin with.
Cc: Kay Sievers <kay.sievers@vrfy.org> Cc: Hannes Reinecke <hare@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> --- lib/kobject.c | 9 ++++++++- 1 files changed, 8 insertions(+), 1 deletions(-)
diff --git a/lib/kobject.c b/lib/kobject.c index 0d03252..60ae9e8 100644 --- a/lib/kobject.c +++ b/lib/kobject.c @@ -592,8 +592,15 @@ static void kobject_release(struct kref *kref) */ void kobject_put(struct kobject *kobj) { - if (kobj) + if (kobj) { + if (!kobj->state_initialized) { + printk(KERN_WARNING "kobject: '%s' (%p): is not " + "initialized, yet kobject_put() is being " + "called.\n", kobject_name(kobj), kobj); + WARN_ON(1); + } kref_put(&kobj->kref, kobject_release); + } } static void dynamic_kobj_release(struct kobject *kobj) -- 1.5.4.5
|