X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fkobject.c;h=83bd5b36f91aad8168bc28f7a8c2ff5ef8877890;hb=6749fd110bf44164782df9bba86c0327474446b9;hp=640bd98a4c8aa59fd3f597da6f0706287de5609c;hpb=931da6137e8e8c622f59251e8b645467aea293f1;p=pandora-kernel.git diff --git a/lib/kobject.c b/lib/kobject.c index 640bd98a4c8a..83bd5b36f91a 100644 --- a/lib/kobject.c +++ b/lib/kobject.c @@ -531,6 +531,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 @@ -785,7 +792,7 @@ struct kobject *kset_find_obj_hinted(struct kset *kset, const char *name, slow_search: 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; } }