if (err < 0)
continue;
- if ((err = kobject_set_name(&entry->kobj, "%s", entry->name)))
- return err;
entry->kobj.kset = paths_kset;
- entry->kobj.ktype = &ktype_pdcspath;
- if ((err = kobject_register(&entry->kobj)))
+ err = kobject_init_and_add(&entry->kobj, &ktype_pdcspath, NULL,
+ "%s", entry->name);
+ if (err)
return err;
-
+
/* kobject is now registered */
write_lock(&entry->rw_lock);
entry->ready = 2;
}
write_unlock(&entry->rw_lock);
+ kobject_uevent(&entry->kobj, KOBJ_ADD);
}
return 0;
for (i = 0; (entry = pdcspath_entries[i]); i++) {
read_lock(&entry->rw_lock);
if (entry->ready >= 2)
- kobject_unregister(&entry->kobj);
+ kobject_put(&entry->kobj);
read_unlock(&entry->rw_lock);
}
}
kset_unregister(paths_kset);
fail_ksetreg:
- kobject_unregister(stable_kobj);
+ kobject_put(stable_kobj);
fail_firmreg:
printk(KERN_INFO PDCS_PREFIX " bailing out\n");
{
pdcs_unregister_pathentries();
kset_unregister(paths_kset);
- kobject_unregister(stable_kobj);
+ kobject_put(stable_kobj);
}