return path;
}
+EXPORT_SYMBOL_GPL(kobject_get_path);
/**
* kobject_init - initialize object.
/* be noisy on error issues */
if (error == -EEXIST)
- pr_debug("kobject_add failed for %s with -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
- pr_debug("kobject_add failed for %s (%d)\n",
+ printk("kobject_add failed for %s (%d)\n",
kobject_name(kobj), error);
- /* dump_stack(); */
+ dump_stack();
}
return error;
struct kobject *kobject_add_dir(struct kobject *parent, const char *name)
{
struct kobject *k;
+ int ret;
if (!parent)
return NULL;
k->parent = parent;
k->ktype = &dir_ktype;
kobject_set_name(k, name);
- kobject_register(k);
+ ret = kobject_register(k);
+ if (ret < 0) {
+ printk(KERN_WARNING "kobject_add_dir: "
+ "kobject_register error: %d\n", ret);
+ kobject_del(k);
+ return NULL;
+ }
return k;
}