mtd: rawnand: fsl_upm: Use devm_kasprintf() to allocate the MTD name
authorBoris Brezillon <boris.brezillon@collabora.com>
Wed, 3 Jun 2020 13:49:16 +0000 (15:49 +0200)
committerMiquel Raynal <miquel.raynal@bootlin.com>
Fri, 26 Jun 2020 06:35:09 +0000 (08:35 +0200)
This simplifies the init() error path and the remove() handler.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20200603134922.1352340-5-boris.brezillon@collabora.com
drivers/mtd/nand/raw/fsl_upm.c

index 9cf79c6..a3e3a96 100644 (file)
@@ -176,8 +176,9 @@ static int fun_chip_init(struct fsl_upm_nand *fun,
                return -ENODEV;
 
        nand_set_flash_node(&fun->chip, flash_np);
-       mtd->name = kasprintf(GFP_KERNEL, "0x%llx.%pOFn", (u64)io_res->start,
-                             flash_np);
+       mtd->name = devm_kasprintf(fun->dev, GFP_KERNEL, "0x%llx.%pOFn",
+                                  (u64)io_res->start,
+                                  flash_np);
        if (!mtd->name) {
                ret = -ENOMEM;
                goto err;
@@ -190,8 +191,6 @@ static int fun_chip_init(struct fsl_upm_nand *fun,
        ret = mtd_device_register(mtd, NULL, 0);
 err:
        of_node_put(flash_np);
-       if (ret)
-               kfree(mtd->name);
        return ret;
 }
 
@@ -318,7 +317,6 @@ static int fun_remove(struct platform_device *ofdev)
        ret = mtd_device_unregister(mtd);
        WARN_ON(ret);
        nand_cleanup(chip);
-       kfree(mtd->name);
 
        for (i = 0; i < fun->mchip_count; i++) {
                if (fun->rnb_gpio[i] < 0)