Re: [PATCH] kobject: clean up the kobject add documentation a bit more
On Fri, May 03, 2019 at 11:25:29AM +1000, Tobin C. Harding wrote: > On Thu, May 02, 2019 at 12:22:24PM +0200, Greg Kroah-Hartman wrote: > > Commit 1fd7c3b438a2 ("kobject: Improve doc clarity kobject_init_and_add()") > > tried to provide more clarity, but the reference to kobject_del() was > > incorrect. Fix that up by removing that line, and hopefully be more > > explicit > > as to exactly what needs to happen here once you register a kobject with the > > kobject core. > > > > Cc: Tobin C. Harding > > Fixes: 1fd7c3b438a2 ("kobject: Improve doc clarity kobject_init_and_add()") > > Signed-off-by: Greg Kroah-Hartman > > > > diff --git a/lib/kobject.c b/lib/kobject.c > > index 3f4b7e95b0c2..f2ccdbac8ed9 100644 > > --- a/lib/kobject.c > > +++ b/lib/kobject.c > > @@ -416,8 +416,12 @@ static __printf(3, 0) int kobject_add_varg(struct > > kobject *kobj, > > * to this function be directly freed with a call to kfree(), > > * that can leak memory. > > * > > - * If this call returns successfully and you later need to unwind > > - * kobject_add() for the error path you should call kobject_del(). > > + * If this function returns success, kobject_put() must also be > > called > > + * in order to properly clean up the memory associated with the > > object. > > + * > > + * In short, once this function is called, kobject_put() MUST be > > called > > + * when the use of the object is finished in order to properly free > > + * everything. > > */ > > int kobject_add(struct kobject *kobj, struct kobject *parent, > > const char *fmt, ...) > > Ack! (Do I get to do those :) Yes you do, thanks, now added to the patch and queued up. greg k-h
Re: [PATCH] kobject: clean up the kobject add documentation a bit more
On Thu, May 02, 2019 at 12:22:24PM +0200, Greg Kroah-Hartman wrote: > Commit 1fd7c3b438a2 ("kobject: Improve doc clarity kobject_init_and_add()") > tried to provide more clarity, but the reference to kobject_del() was > incorrect. Fix that up by removing that line, and hopefully be more explicit > as to exactly what needs to happen here once you register a kobject with the > kobject core. > > Cc: Tobin C. Harding > Fixes: 1fd7c3b438a2 ("kobject: Improve doc clarity kobject_init_and_add()") > Signed-off-by: Greg Kroah-Hartman > > diff --git a/lib/kobject.c b/lib/kobject.c > index 3f4b7e95b0c2..f2ccdbac8ed9 100644 > --- a/lib/kobject.c > +++ b/lib/kobject.c > @@ -416,8 +416,12 @@ static __printf(3, 0) int kobject_add_varg(struct > kobject *kobj, > * to this function be directly freed with a call to kfree(), > * that can leak memory. > * > - * If this call returns successfully and you later need to unwind > - * kobject_add() for the error path you should call kobject_del(). > + * If this function returns success, kobject_put() must also be > called > + * in order to properly clean up the memory associated with the > object. > + * > + * In short, once this function is called, kobject_put() MUST be > called > + * when the use of the object is finished in order to properly free > + * everything. > */ > int kobject_add(struct kobject *kobj, struct kobject *parent, > const char *fmt, ...) Ack! (Do I get to do those :) I'm not convinced we have the docs for kobject clear enough for a kobject noob to read but this patch defiantly fixes the error I introduced. thanks, Tobin.
[PATCH] kobject: clean up the kobject add documentation a bit more
Commit 1fd7c3b438a2 ("kobject: Improve doc clarity kobject_init_and_add()") tried to provide more clarity, but the reference to kobject_del() was incorrect. Fix that up by removing that line, and hopefully be more explicit as to exactly what needs to happen here once you register a kobject with the kobject core. Cc: Tobin C. Harding Fixes: 1fd7c3b438a2 ("kobject: Improve doc clarity kobject_init_and_add()") Signed-off-by: Greg Kroah-Hartman diff --git a/lib/kobject.c b/lib/kobject.c index 3f4b7e95b0c2..f2ccdbac8ed9 100644 --- a/lib/kobject.c +++ b/lib/kobject.c @@ -416,8 +416,12 @@ static __printf(3, 0) int kobject_add_varg(struct kobject *kobj, * to this function be directly freed with a call to kfree(), * that can leak memory. * - * If this call returns successfully and you later need to unwind - * kobject_add() for the error path you should call kobject_del(). + * If this function returns success, kobject_put() must also be called + * in order to properly clean up the memory associated with the object. + * + * In short, once this function is called, kobject_put() MUST be called + * when the use of the object is finished in order to properly free + * everything. */ int kobject_add(struct kobject *kobj, struct kobject *parent, const char *fmt, ...)