Re: [PATCH 044/196] kset: add kset_create_and_add function

Greg KH
2008-01-25T17:52:41Z

On Fri, Jan 25, 2008 at 05:09:41PM +0800, Dave Young wrote:
> On Jan 25, 2008 3:09 PM, Greg Kroah-Hartman <gregkh@suse.de> wrote:
> > +/**
> > + * kset_create_and_add - create a struct kset dynamically and add it to sysfs
> > + *
> > + * @name: the name for the kset
> > + * @uevent_ops: a struct kset_uevent_ops for the kset
> > + * @parent_kobj: the parent kobject of this kset, if any.
> > + *
> > + * This function creates a kset structure dynamically and registers it
> > + * with sysfs. When you are finished with this structure, call
> > + * kset_unregister() and the structure will be dynamically freed when it
> > + * is no longer being used.
> > + *
> > + * If the kset was not able to be created, NULL will be returned.
> > + */
> > +struct kset *kset_create_and_add(const char *name,
> > + struct kset_uevent_ops *uevent_ops,
> > + struct kobject *parent_kobj)
> > +{
> > + struct kset *kset;
> > + int error;
> > +
> > + kset = kset_create(name, uevent_ops, parent_kobj);
> > + if (!kset)
> > + return NULL;
> > + error = kset_register(kset);
> > + if (error) {
> > + kfree(kset);
>
> How about : kobject_put(&kset->kobj);

At this point in the object's lifetime, it is the same exact thing.

So both are correct :)

thanks,

greg k-h