drivers/mtd/nand/raw/fsl_ifc_nand.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-)
Replace the manual kasprintf() in probe with devm_kasprintf() so the
name is freed automatically on driver removal, and drop the now
unnecessary kfree() in fsl_ifc_chip_remove() and its leftover mtd
local.
Assisted-by: opencode:big-pickle
Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
drivers/mtd/nand/raw/fsl_ifc_nand.c | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/drivers/mtd/nand/raw/fsl_ifc_nand.c b/drivers/mtd/nand/raw/fsl_ifc_nand.c
index 469b233db73e..cc75b6a67e07 100644
--- a/drivers/mtd/nand/raw/fsl_ifc_nand.c
+++ b/drivers/mtd/nand/raw/fsl_ifc_nand.c
@@ -963,10 +963,6 @@ static int fsl_ifc_chip_init(struct fsl_ifc_mtd *priv)
static int fsl_ifc_chip_remove(struct fsl_ifc_mtd *priv)
{
- struct mtd_info *mtd = nand_to_mtd(&priv->chip);
-
- kfree(mtd->name);
-
ifc_nand_ctrl->chips[priv->bank] = NULL;
return 0;
@@ -1061,7 +1057,7 @@ static int fsl_ifc_nand_probe(struct platform_device *dev)
&ifc->ifc_nand.nand_evter_intr_en);
mtd = nand_to_mtd(&priv->chip);
- mtd->name = kasprintf(GFP_KERNEL, "%llx.flash", (u64)res->start);
+ mtd->name = devm_kasprintf(priv->dev, GFP_KERNEL, "%llx.flash", (u64)res->start);
if (!mtd->name) {
ret = -ENOMEM;
goto err;
--
2.55.0
On Wed, 09 Sep 2026 15:38:13 -0700, Rosen Penev wrote:
> Replace the manual kasprintf() in probe with devm_kasprintf() so the
> name is freed automatically on driver removal, and drop the now
> unnecessary kfree() in fsl_ifc_chip_remove() and its leftover mtd
> local.
>
>
Applied to nand/next, thanks!
[1/1] mtd: rawnand: fsl_ifc: use devm_kasprintf for mtd name
commit: 44c7b273e6b06fad31f2ca166307a41705ef15dd
Patche(s) should be available on mtd/linux.git and will be
part of the next PR (provided that no robot complains by then).
Kind regards,
Miquèl
On Wed, Sep 9, 2026 at 3:38 PM Rosen Penev <rosenp@gmail.com> wrote:
>
> Replace the manual kasprintf() in probe with devm_kasprintf() so the
> name is freed automatically on driver removal, and drop the now
> unnecessary kfree() in fsl_ifc_chip_remove() and its leftover mtd
> local.
>
> Assisted-by: opencode:big-pickle
> Signed-off-by: Rosen Penev <rosenp@gmail.com>
> ---
> drivers/mtd/nand/raw/fsl_ifc_nand.c | 6 +-----
> 1 file changed, 1 insertion(+), 5 deletions(-)
>
> diff --git a/drivers/mtd/nand/raw/fsl_ifc_nand.c b/drivers/mtd/nand/raw/fsl_ifc_nand.c
> index 469b233db73e..cc75b6a67e07 100644
> --- a/drivers/mtd/nand/raw/fsl_ifc_nand.c
> +++ b/drivers/mtd/nand/raw/fsl_ifc_nand.c
> @@ -963,10 +963,6 @@ static int fsl_ifc_chip_init(struct fsl_ifc_mtd *priv)
>
> static int fsl_ifc_chip_remove(struct fsl_ifc_mtd *priv)
> {
> - struct mtd_info *mtd = nand_to_mtd(&priv->chip);
> -
> - kfree(mtd->name);
> -
> ifc_nand_ctrl->chips[priv->bank] = NULL;
>
> return 0;
> @@ -1061,7 +1057,7 @@ static int fsl_ifc_nand_probe(struct platform_device *dev)
> &ifc->ifc_nand.nand_evter_intr_en);
>
> mtd = nand_to_mtd(&priv->chip);
> - mtd->name = kasprintf(GFP_KERNEL, "%llx.flash", (u64)res->start);
> + mtd->name = devm_kasprintf(priv->dev, GFP_KERNEL, "%llx.flash", (u64)res->start);
Having &mtd->dev as the first argument would be interesting but nobody
does this.
> if (!mtd->name) {
> ret = -ENOMEM;
> goto err;
> --
> 2.55.0
>
© 2016 - 2026 Red Hat, Inc.