From: Tzung-Bi Shih <tzungbi@kernel.org>
To: Greg KH <gregkh@linuxfoundation.org>
Cc: "James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
"Martin K. Petersen" <martin.petersen@oracle.com>,
linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org,
stable@vger.kernel.org
Subject: Re: [PATCH] scsi: core: Correct wrong kfree() usage for `kobj->name`
Date: Fri, 16 Jan 2026 09:37:07 +0000 [thread overview]
Message-ID: <aWoGw8PEKj_5mncV@google.com> (raw)
In-Reply-To: <2026011614-exile-raisin-0ec4@gregkh>
On Fri, Jan 16, 2026 at 10:00:11AM +0100, Greg KH wrote:
> On Fri, Jan 16, 2026 at 08:13:59AM +0000, Tzung-Bi Shih wrote:
> > `kobj->name` should be freed by kfree_const()[1][2]. Correct it.
> >
> > [1] https://elixir.bootlin.com/linux/v6.18/source/lib/kasprintf.c#L41
> > [2] https://elixir.bootlin.com/linux/v6.18/source/lib/kobject.c#L695
> >
> > Cc: stable@vger.kernel.org
> > Fixes: b49493f99690 ("Fix a memory leak in scsi_host_dev_release()")
> > Signed-off-by: Tzung-Bi Shih <tzungbi@kernel.org>
> > ---
> > drivers/scsi/hosts.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/scsi/hosts.c b/drivers/scsi/hosts.c
> > index e047747d4ecf..50ec782cf9f4 100644
> > --- a/drivers/scsi/hosts.c
> > +++ b/drivers/scsi/hosts.c
> > @@ -373,7 +373,7 @@ static void scsi_host_dev_release(struct device *dev)
> > * name as well as the proc dir structure are leaked.
> > */
> > scsi_proc_hostdir_rm(shost->hostt);
> > - kfree(dev_name(&shost->shost_dev));
> > + kfree_const(dev_name(&shost->shost_dev));
>
> Shouldn't the struct device name be freed by the driver core for this
> device when it goes out of scope? Why is it being manually freed here
> at all?
Ah, correct. I think the following patch is what it really needs:
diff --git a/drivers/scsi/hosts.c b/drivers/scsi/hosts.c
index 1b3fbd328277..e3362f445f93 100644
--- a/drivers/scsi/hosts.c
+++ b/drivers/scsi/hosts.c
@@ -373,7 +373,6 @@ static void scsi_host_dev_release(struct device *dev)
* name as well as the proc dir structure are leaked.
*/
scsi_proc_hostdir_rm(shost->hostt);
- kfree(dev_name(&shost->shost_dev));
}
kfree(shost->shost_data);
@@ -548,11 +547,7 @@ struct Scsi_Host *scsi_host_alloc(const struct scsi_host_template *sht, int priv
goto fail;
return shost;
fail:
- /*
- * Host state is still SHOST_CREATED and that is enough to release
- * ->shost_gendev. scsi_host_dev_release() will free
- * dev_name(&shost->shost_dev).
- */
+ put_device(&shost->shost_dev);
put_device(&shost->shost_gendev);
return NULL;
next prev parent reply other threads:[~2026-01-16 9:37 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-16 8:13 [PATCH] scsi: core: Correct wrong kfree() usage for `kobj->name` Tzung-Bi Shih
2026-01-16 9:00 ` Greg KH
2026-01-16 9:37 ` Tzung-Bi Shih [this message]
2026-01-16 10:50 ` Greg KH
2026-01-17 19:48 ` Tzung-Bi Shih
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=aWoGw8PEKj_5mncV@google.com \
--to=tzungbi@kernel.org \
--cc=James.Bottomley@hansenpartnership.com \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=stable@vger.kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.