[PATCH] Kobject: provide better warning messages when people do stupid things
Now that kobject_add() is used more than kobject_register() the kernel wasn't always letting people know that they were doing something wrong. This change fixes this. Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
		
							parent
							
								
									4f2928d0a4
								
							
						
					
					
						commit
						dcd0da0021
					
				| @ -194,6 +194,17 @@ int kobject_add(struct kobject * kobj) | ||||
| 		unlink(kobj); | ||||
| 		if (parent) | ||||
| 			kobject_put(parent); | ||||
| 
 | ||||
| 		/* be noisy on error issues */ | ||||
| 		if (error == -EEXIST) | ||||
| 			printk("kobject_add failed for %s with -EEXIST, " | ||||
| 			       "don't try to register things with the " | ||||
| 			       "same name in the same directory.\n", | ||||
| 			       kobject_name(kobj)); | ||||
| 		else | ||||
| 			printk("kobject_add failed for %s (%d)\n", | ||||
| 			       kobject_name(kobj), error); | ||||
| 		dump_stack(); | ||||
| 	} | ||||
| 
 | ||||
| 	return error; | ||||
| @ -207,18 +218,13 @@ int kobject_add(struct kobject * kobj) | ||||
| 
 | ||||
| int kobject_register(struct kobject * kobj) | ||||
| { | ||||
| 	int error = 0; | ||||
| 	int error = -EINVAL; | ||||
| 	if (kobj) { | ||||
| 		kobject_init(kobj); | ||||
| 		error = kobject_add(kobj); | ||||
| 		if (error) { | ||||
| 			printk("kobject_register failed for %s (%d)\n", | ||||
| 			       kobject_name(kobj),error); | ||||
| 			dump_stack(); | ||||
| 		} else | ||||
| 		if (!error) | ||||
| 			kobject_uevent(kobj, KOBJ_ADD); | ||||
| 	} else | ||||
| 		error = -EINVAL; | ||||
| 	} | ||||
| 	return error; | ||||
| } | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user