public inbox for linux-mtd@lists.infradead.org
 help / color / mirror / Atom feed
From: Greg KH <gregkh@linuxfoundation.org>
To: Yang Yingliang <yangyingliang@huawei.com>
Cc: Luben Tuikov <luben.tuikov@amd.com>,
	linux-kernel@vger.kernel.org, qemu-devel@nongnu.org,
	linux-f2fs-devel@lists.sourceforge.net,
	linux-erofs@lists.ozlabs.org, ocfs2-devel@oss.oracle.com,
	linux-mtd@lists.infradead.org, amd-gfx@lists.freedesktop.org,
	rafael@kernel.org, somlo@cmu.edu, mst@redhat.com,
	jaegeuk@kernel.org, chao@kernel.org, hsiangkao@linux.alibaba.com,
	huangjianan@oppo.com, mark@fasheh.com, jlbec@evilplan.org,
	joseph.qi@linux.alibaba.com, akpm@linux-foundation.org,
	alexander.deucher@amd.com, richard@nod.at, liushixin2@huawei.com
Subject: Re: [PATCH 01/11] kset: fix documentation for kset_register()
Date: Fri, 21 Oct 2022 10:16:26 +0200	[thread overview]
Message-ID: <Y1JVWsLs0EQ3dtxM@kroah.com> (raw)
In-Reply-To: <10d887c4-7db0-8958-f661-bd52e6c8b4af@huawei.com>

On Fri, Oct 21, 2022 at 04:05:18PM +0800, Yang Yingliang wrote:
> 
> On 2022/10/21 13:34, Luben Tuikov wrote:
> > On 2022-10-20 22:20, Yang Yingliang wrote:
> > > kset_register() is currently used in some places without calling
> > > kset_put() in error path, because the callers think it should be
> > > kset internal thing to do, but the driver core can not know what
> > > caller doing with that memory at times. The memory could be freed
> > > both in kset_put() and error path of caller, if it is called in
> > > kset_register().
> > > 
> > > So make the function documentation more explicit about calling
> > > kset_put() in the error path of caller.
> > > 
> > > Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
> > > ---
> > >   lib/kobject.c | 3 +++
> > >   1 file changed, 3 insertions(+)
> > > 
> > > diff --git a/lib/kobject.c b/lib/kobject.c
> > > index a0b2dbfcfa23..6da04353d974 100644
> > > --- a/lib/kobject.c
> > > +++ b/lib/kobject.c
> > > @@ -834,6 +834,9 @@ EXPORT_SYMBOL_GPL(kobj_sysfs_ops);
> > >   /**
> > >    * kset_register() - Initialize and add a kset.
> > >    * @k: kset.
> > > + *
> > > + * If this function returns an error, kset_put() must be called to
> > > + * properly clean up the memory associated with the object.
> > >    */
> > And I'd continue the sentence, with " ... with the object,
> > for instance the memory for the kset.kobj.name when kobj_set_name(&kset.kobj, format, ...)
> > was called before calling kset_register()."
> kobject_cleanup() not only frees name, but aslo calls ->release() to free
> another resources.

Yes, but it's the kobject of the kset, which does need to have it's name
cleaned up, but that kobject should NOT be freeing any larger structures
that the kset might be embedded in, right?

> > This makes it clear what we want to make sure is freed, in case of an early error
> > from kset_register().
> 
> How about like this:
> 
> If this function returns an error, kset_put() must be called to clean up the name of
> kset object and other memory associated with the object.

Again, I think we can fix this up to not be needed.

thanks,

greg k-h

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

  reply	other threads:[~2022-10-21  8:17 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-21  2:20 [PATCH 00/11] fix memory leak while kset_register() fails Yang Yingliang
2022-10-21  2:20 ` [PATCH 01/11] kset: fix documentation for kset_register() Yang Yingliang
2022-10-21  5:34   ` Luben Tuikov
2022-10-21  8:05     ` Yang Yingliang
2022-10-21  8:16       ` Greg KH [this message]
2022-10-21  8:18       ` Luben Tuikov
2022-10-21  2:20 ` [PATCH 02/11] kset: add null pointer check in kset_put() Yang Yingliang
2022-10-21  2:20 ` [PATCH 03/11] bus: fix possible memory leak in bus_register() Yang Yingliang
2022-10-21  2:20 ` [PATCH 04/11] kobject: fix possible memory leak in kset_create_and_add() Yang Yingliang
2022-10-21  2:20 ` [PATCH 05/11] class: fix possible memory leak in __class_register() Yang Yingliang
2022-10-21  2:20 ` [PATCH 06/11] firmware: qemu_fw_cfg: fix possible memory leak in fw_cfg_build_symlink() Yang Yingliang
2022-10-21  2:20 ` [PATCH 07/11] f2fs: fix possible memory leak in f2fs_init_sysfs() Yang Yingliang
2022-10-21  2:20 ` [PATCH 08/11] erofs: fix possible memory leak in erofs_init_sysfs() Yang Yingliang
2022-10-21  2:21 ` [PATCH 09/11] ocfs2: possible memory leak in mlog_sys_init() Yang Yingliang
2022-10-21  2:21 ` [PATCH 10/11] drm/amdgpu/discovery: fix possible memory leak Yang Yingliang
2022-10-21  2:21 ` [PATCH 11/11] ubifs: Fix memory leak in ubifs_sysfs_init() Yang Yingliang
2022-10-21  5:29 ` [PATCH 00/11] fix memory leak while kset_register() fails Luben Tuikov
2022-10-21  5:37   ` Greg KH
2022-10-21  7:55     ` Luben Tuikov
2022-10-21  8:18       ` Greg KH
2022-10-21  8:24         ` Luben Tuikov
2022-10-21  8:41           ` Luben Tuikov
2022-10-21  9:23             ` Yang Yingliang
2022-10-21  8:24     ` Yang Yingliang
2022-10-21  8:36       ` Greg KH
2022-10-21  8:52         ` Luben Tuikov
2022-10-21  8:59         ` Yang Yingliang
2022-10-21  9:08           ` Luben Tuikov
2022-10-21  9:56             ` Yang Yingliang
2022-10-21 23:45               ` Luben Tuikov
2022-10-21  9:12         ` Yang Yingliang
2022-10-21 23:48           ` Luben Tuikov
2022-10-21  7:25   ` Yang Yingliang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Y1JVWsLs0EQ3dtxM@kroah.com \
    --to=gregkh@linuxfoundation.org \
    --cc=akpm@linux-foundation.org \
    --cc=alexander.deucher@amd.com \
    --cc=amd-gfx@lists.freedesktop.org \
    --cc=chao@kernel.org \
    --cc=hsiangkao@linux.alibaba.com \
    --cc=huangjianan@oppo.com \
    --cc=jaegeuk@kernel.org \
    --cc=jlbec@evilplan.org \
    --cc=joseph.qi@linux.alibaba.com \
    --cc=linux-erofs@lists.ozlabs.org \
    --cc=linux-f2fs-devel@lists.sourceforge.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=liushixin2@huawei.com \
    --cc=luben.tuikov@amd.com \
    --cc=mark@fasheh.com \
    --cc=mst@redhat.com \
    --cc=ocfs2-devel@oss.oracle.com \
    --cc=qemu-devel@nongnu.org \
    --cc=rafael@kernel.org \
    --cc=richard@nod.at \
    --cc=somlo@cmu.edu \
    --cc=yangyingliang@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox