[Bluetooth] Fix reference count when connection lookup fails
[pandora-kernel.git] / lib / kobject.c
index 687ab41..1699eb9 100644 (file)
@@ -198,14 +198,14 @@ int kobject_add(struct kobject * kobj)
 
                /* 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;
@@ -407,6 +407,7 @@ static struct kobj_type dir_ktype = {
 struct kobject *kobject_add_dir(struct kobject *parent, const char *name)
 {
        struct kobject *k;
+       int ret;
 
        if (!parent)
                return NULL;
@@ -418,7 +419,13 @@ struct kobject *kobject_add_dir(struct kobject *parent, const char *name)
        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;
 }