diff options
Diffstat (limited to 'lib/kobject.c')
| -rw-r--r-- | lib/kobject.c | 19 | 
1 files changed, 10 insertions, 9 deletions
| diff --git a/lib/kobject.c b/lib/kobject.c index 0d03252f87a..2c649037092 100644 --- a/lib/kobject.c +++ b/lib/kobject.c @@ -58,11 +58,6 @@ static int create_dir(struct kobject *kobj)  	return error;  } -static inline struct kobject *to_kobj(struct list_head *entry) -{ -	return container_of(entry, struct kobject, entry); -} -  static int get_kobj_path_length(struct kobject *kobj)  {  	int length = 1; @@ -592,8 +587,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) @@ -745,12 +747,11 @@ void kset_unregister(struct kset *k)   */  struct kobject *kset_find_obj(struct kset *kset, const char *name)  { -	struct list_head *entry; +	struct kobject *k;  	struct kobject *ret = NULL;  	spin_lock(&kset->list_lock); -	list_for_each(entry, &kset->list) { -		struct kobject *k = to_kobj(entry); +	list_for_each_entry(k, &kset->list, entry) {  		if (kobject_name(k) && !strcmp(kobject_name(k), name)) {  			ret = kobject_get(k);  			break; | 
