diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-04-14 18:44:38 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-04-14 18:44:38 -0700 |
commit | 2bb590b80b2f057d9277adc86a0858843d15fca6 (patch) | |
tree | 5938e2c0bc92c575a458f3118cf3a6b6e65d3d6c /lib/kobject.c | |
parent | c0e03084000a54d75d1440cce5b71aa9db5a5836 (diff) | |
parent | 41ef2d5678d83af030125550329b6ae8b74618fa (diff) | |
download | lwn-2bb590b80b2f057d9277adc86a0858843d15fca6.tar.gz lwn-2bb590b80b2f057d9277adc86a0858843d15fca6.zip |
Merge 3.9-rc7 into staging-next
We want these fixes here.
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'lib/kobject.c')
-rw-r--r-- | lib/kobject.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/kobject.c b/lib/kobject.c index e07ee1fcd6f1..a65486613d79 100644 --- a/lib/kobject.c +++ b/lib/kobject.c @@ -529,6 +529,13 @@ struct kobject *kobject_get(struct kobject *kobj) return kobj; } +static struct kobject *kobject_get_unless_zero(struct kobject *kobj) +{ + if (!kref_get_unless_zero(&kobj->kref)) + kobj = NULL; + return kobj; +} + /* * kobject_cleanup - free kobject resources. * @kobj: object to cleanup @@ -751,7 +758,7 @@ struct kobject *kset_find_obj(struct kset *kset, const char *name) list_for_each_entry(k, &kset->list, entry) { if (kobject_name(k) && !strcmp(kobject_name(k), name)) { - ret = kobject_get(k); + ret = kobject_get_unless_zero(k); break; } } |