Loading include/linux/kobject.h +0 −2 Original line number Diff line number Diff line Loading @@ -191,8 +191,6 @@ static inline struct kobj_type *get_ktype(struct kobject *kobj) } extern struct kobject *kset_find_obj(struct kset *, const char *); extern struct kobject *kset_find_obj_hinted(struct kset *, const char *, struct kobject *); /* The global /sys/kernel/ kobject for people to chain off of */ extern struct kobject *kernel_kobj; Loading lib/kobject.c +0 −37 Original line number Diff line number Diff line Loading @@ -745,44 +745,12 @@ void kset_unregister(struct kset *k) * take a reference and return the object. */ struct kobject *kset_find_obj(struct kset *kset, const char *name) { return kset_find_obj_hinted(kset, name, NULL); } /** * kset_find_obj_hinted - search for object in kset given a predecessor hint. * @kset: kset we're looking in. * @name: object's name. * @hint: hint to possible object's predecessor. * * Check the hint's next object and if it is a match return it directly, * otherwise, fall back to the behavior of kset_find_obj(). Either way * a reference for the returned object is held and the reference on the * hinted object is released. */ struct kobject *kset_find_obj_hinted(struct kset *kset, const char *name, struct kobject *hint) { struct kobject *k; struct kobject *ret = NULL; spin_lock(&kset->list_lock); if (!hint) goto slow_search; /* end of list detection */ if (hint->entry.next == kset->list.next) goto slow_search; k = container_of(hint->entry.next, struct kobject, entry); if (!kobject_name(k) || strcmp(kobject_name(k), name)) goto slow_search; ret = kobject_get(k); goto unlock_exit; slow_search: list_for_each_entry(k, &kset->list, entry) { if (kobject_name(k) && !strcmp(kobject_name(k), name)) { ret = kobject_get(k); Loading @@ -790,12 +758,7 @@ struct kobject *kset_find_obj_hinted(struct kset *kset, const char *name, } } unlock_exit: spin_unlock(&kset->list_lock); if (hint) kobject_put(hint); return ret; } Loading Loading
include/linux/kobject.h +0 −2 Original line number Diff line number Diff line Loading @@ -191,8 +191,6 @@ static inline struct kobj_type *get_ktype(struct kobject *kobj) } extern struct kobject *kset_find_obj(struct kset *, const char *); extern struct kobject *kset_find_obj_hinted(struct kset *, const char *, struct kobject *); /* The global /sys/kernel/ kobject for people to chain off of */ extern struct kobject *kernel_kobj; Loading
lib/kobject.c +0 −37 Original line number Diff line number Diff line Loading @@ -745,44 +745,12 @@ void kset_unregister(struct kset *k) * take a reference and return the object. */ struct kobject *kset_find_obj(struct kset *kset, const char *name) { return kset_find_obj_hinted(kset, name, NULL); } /** * kset_find_obj_hinted - search for object in kset given a predecessor hint. * @kset: kset we're looking in. * @name: object's name. * @hint: hint to possible object's predecessor. * * Check the hint's next object and if it is a match return it directly, * otherwise, fall back to the behavior of kset_find_obj(). Either way * a reference for the returned object is held and the reference on the * hinted object is released. */ struct kobject *kset_find_obj_hinted(struct kset *kset, const char *name, struct kobject *hint) { struct kobject *k; struct kobject *ret = NULL; spin_lock(&kset->list_lock); if (!hint) goto slow_search; /* end of list detection */ if (hint->entry.next == kset->list.next) goto slow_search; k = container_of(hint->entry.next, struct kobject, entry); if (!kobject_name(k) || strcmp(kobject_name(k), name)) goto slow_search; ret = kobject_get(k); goto unlock_exit; slow_search: list_for_each_entry(k, &kset->list, entry) { if (kobject_name(k) && !strcmp(kobject_name(k), name)) { ret = kobject_get(k); Loading @@ -790,12 +758,7 @@ struct kobject *kset_find_obj_hinted(struct kset *kset, const char *name, } } unlock_exit: spin_unlock(&kset->list_lock); if (hint) kobject_put(hint); return ret; } Loading