]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
mtd: core: provide unique name for nvmem device, take two
authorMichael Walle <michael@walle.cc>
Wed, 8 Mar 2023 08:20:18 +0000 (09:20 +0100)
committerStefan Bader <stefan.bader@canonical.com>
Fri, 7 Jul 2023 10:17:13 +0000 (12:17 +0200)
BugLink: https://bugs.launchpad.net/bugs/2025067
commit 1cd9ceaa5282ff10ea20a7fbadde5a476a1cc99e upstream.

Commit c048b60d39e1 ("mtd: core: provide unique name for nvmem device")
tries to give the nvmem device a unique name, but fails badly if the mtd
device doesn't have a "struct device" associated with it, i.e. if
CONFIG_MTD_PARTITIONED_MASTER is not set. This will result in the name
"(null)-user-otp", which is not unique. It seems the best we can do is
to use the compatible name together with a unique identifier added by
the nvmem subsystem by using NVMEM_DEVID_AUTO.

Fixes: c048b60d39e1 ("mtd: core: provide unique name for nvmem device")
Cc: stable@vger.kernel.org
Signed-off-by: Michael Walle <michael@walle.cc>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20230308082021.870459-1-michael@walle.cc
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
drivers/mtd/mtdcore.c

index 0feacb9fbdac52e25cc174f910ade82c351cab0b..8fc66cda4a0994e85d08e5dcb7013e253f4c4df1 100644 (file)
@@ -888,8 +888,8 @@ static struct nvmem_device *mtd_otp_nvmem_register(struct mtd_info *mtd,
 
        /* OTP nvmem will be registered on the physical device */
        config.dev = mtd->dev.parent;
-       config.name = kasprintf(GFP_KERNEL, "%s-%s", dev_name(&mtd->dev), compatible);
-       config.id = NVMEM_DEVID_NONE;
+       config.name = compatible;
+       config.id = NVMEM_DEVID_AUTO;
        config.owner = THIS_MODULE;
        config.type = NVMEM_TYPE_OTP;
        config.root_only = true;
@@ -905,7 +905,6 @@ static struct nvmem_device *mtd_otp_nvmem_register(struct mtd_info *mtd,
                nvmem = NULL;
 
        of_node_put(np);
-       kfree(config.name);
 
        return nvmem;
 }