Re: mtd: Use mtd device name instead of mtd->name when registering nvmem device

From: Steve deRosier
Date: Mon Nov 25 2019 - 11:06:20 EST


On Fri, Nov 22, 2019 at 9:04 AM Christophe Kerello
<christophe.kerello@xxxxxx> wrote:
>
> MTD currently allows to have same partition name on different devices.
> Since nvmen device registration has been added, it is not more possible
> to have same partition name on different devices. We get following
> logs:
> sysfs: cannot create duplicate filename XXX
> Failed to register NVMEM device
>
> To avoid such issue, the proposed patch uses the mtd device name instead of
> the partition name.
...
> diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c
> index 5fac435..559b693 100644
> --- a/drivers/mtd/mtdcore.c
> +++ b/drivers/mtd/mtdcore.c
> @@ -551,7 +551,7 @@ static int mtd_nvmem_add(struct mtd_info *mtd)
>
> config.id = -1;
> config.dev = &mtd->dev;
> - config.name = mtd->name;
> + config.name = dev_name(&mtd->dev);
> config.owner = THIS_MODULE;
> config.reg_read = mtd_nvmem_reg_read;
> config.size = mtd->size;

This would be a breaking change for anyone that depended on
`config.name = mtd->name` behavior. Obviously, if they were using
multiple devs with the same partition name as you were, they'd have
already been broken, but I suspect if a lot of people were doing that
we'd have heard about that before now.

- Steve