|
@@ -194,6 +194,17 @@ int kobject_add(struct kobject * kobj)
|
|
unlink(kobj);
|
|
unlink(kobj);
|
|
if (parent)
|
|
if (parent)
|
|
kobject_put(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;
|
|
return error;
|
|
@@ -207,18 +218,13 @@ int kobject_add(struct kobject * kobj)
|
|
|
|
|
|
int kobject_register(struct kobject * kobj)
|
|
int kobject_register(struct kobject * kobj)
|
|
{
|
|
{
|
|
- int error = 0;
|
|
|
|
|
|
+ int error = -EINVAL;
|
|
if (kobj) {
|
|
if (kobj) {
|
|
kobject_init(kobj);
|
|
kobject_init(kobj);
|
|
error = kobject_add(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);
|
|
kobject_uevent(kobj, KOBJ_ADD);
|
|
- } else
|
|
|
|
- error = -EINVAL;
|
|
|
|
|
|
+ }
|
|
return error;
|
|
return error;
|
|
}
|
|
}
|
|
|
|
|