[PATCH v2 1/2] mtd: name the mtd device with an optional label property

Boris Brezillon boris.brezillon at free-electrons.com
Wed Feb 8 23:11:55 PST 2017


On Wed, 8 Feb 2017 14:38:59 -0800
Brian Norris <computersforpeace at gmail.com> wrote:

> On Wed, Jan 25, 2017 at 07:17:34PM +0100, Cédric Le Goater wrote:
> > This can be used to easily identify a specific chip on a system with
> > multiple chips.
> > 
> > Drivers wanting to support this new label property will benefit from
> > it without a change. They might want to check in the future that
> > mtd->name is NULL before assigning a default name to the mtd device.
> > Other drivers will keep the current behavior, which is to override
> > mtd->name with their own value.
> > 
> > Suggested-by: Boris Brezillon <boris.brezillon at free-electrons.com>
> > Signed-off-by: Cédric Le Goater <clg at kaod.org>
> > ---
> > 
> >  Changes since v1:
> > 
> >  - moved the use of the "label" property from mtd_set_dev_defaults()
> >    to mtd_set_of_node() to let drivers keep control on how mtd->name
> >    is set and allocated.
> > 
> >  include/linux/mtd/mtd.h | 2 ++
> >  1 file changed, 2 insertions(+)
> > 
> > diff --git a/include/linux/mtd/mtd.h b/include/linux/mtd/mtd.h
> > index 13f8052b9ff9..f4fe15517295 100644
> > --- a/include/linux/mtd/mtd.h
> > +++ b/include/linux/mtd/mtd.h
> > @@ -24,6 +24,7 @@
> >  #include <linux/uio.h>
> >  #include <linux/notifier.h>
> >  #include <linux/device.h>
> > +#include <linux/of.h>
> >  
> >  #include <mtd/mtd-abi.h>
> >  
> > @@ -385,6 +386,7 @@ static inline void mtd_set_of_node(struct mtd_info *mtd,
> >  				   struct device_node *np)
> >  {
> >  	mtd->dev.of_node = np;
> > +	of_property_read_string(np, "label", &mtd->name);  
> 
> Seems like this could be done only if '!mtd->name'?
> 
> As it stands, you're still clobbering some names, e.g. ones from
> physmap_of.c.

Indeed. I thought all users of
mtd_set_of_node()/nand_set_flash_node()/spi_nor_set_flash_node() were
calling this function before initializing mtd->name, which is
apparently not true.

> Notably, this driver already supports a "linux,mtd-name"
> (which your new property should probably supersede), but it seems like
> you're breaking compatibility.

Well, we're not really breaking things until someone starts defining a
'label' property under the flash node ;-). Moreover, if we want to
deprecate 'linux,mtd-name' in favor of 'label', we should definitely
override the 'linux,mtd-name' value with the 'label' one if someone
defined both (which is bad ;-)).

Anyway, I agree, we'd better check if !mtd->name before assigning the
label name.
Cedric, can you send a v3?





More information about the linux-mtd mailing list