All of lore.kernel.org
 help / color / mirror / Atom feed
From: Boris Brezillon <boris.brezillon@free-electrons.com>
To: "Cédric Le Goater" <clg@kaod.org>
Cc: linux-mtd@lists.infradead.org,
	David Woodhouse <dwmw2@infradead.org>,
	Brian Norris <computersforpeace@gmail.com>,
	Marek Vasut <marek.vasut@gmail.com>,
	Richard Weinberger <richard@nod.at>,
	Cyrille Pitchen <cyrille.pitchen@atmel.com>,
	devicetree@vger.kernel.org, Rob Herring <robh+dt@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>
Subject: Re: [PATCH 1/3] mtd: name the mtd device with an optional label property
Date: Wed, 25 Jan 2017 17:51:05 +0100	[thread overview]
Message-ID: <20170125175105.67c335e7@bbrezillon> (raw)
In-Reply-To: <7bdf47c3-d3b7-92a2-47c1-99e4bd6b4f44@kaod.org>

On Wed, 25 Jan 2017 17:47:13 +0100
Cédric Le Goater <clg@kaod.org> wrote:

> On 01/24/2017 03:13 PM, Boris Brezillon wrote:
> > Hi Cédric,
> > 
> > On Mon, 16 Jan 2017 14:27:03 +0100
> > Cédric Le Goater <clg@kaod.org> wrote:
> >   
> >> This can be used to easily identify a specific chip on a system with
> >> multiple chips.
> >>
> >> Suggested-by: Boris Brezillon <boris.brezillon@free-electrons.com>
> >> Signed-off-by: Cédric Le Goater <clg@kaod.org>
> >> ---
> >>  drivers/mtd/mtdcore.c | 7 +++++++
> >>  1 file changed, 7 insertions(+)
> >>
> >> diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c
> >> index 052772f7caef..bf61557b599d 100644
> >> --- a/drivers/mtd/mtdcore.c
> >> +++ b/drivers/mtd/mtdcore.c
> >> @@ -654,6 +654,13 @@ static int mtd_add_device_partitions(struct mtd_info *mtd,
> >>   */
> >>  static void mtd_set_dev_defaults(struct mtd_info *mtd)
> >>  {
> >> +	/*
> >> +	 * If DT support is enabled and we have a valid of_node pointer, try to
> >> +	 * extract the MTD name from the label property.
> >> +	 */
> >> +	if (IS_ENABLED(CONFIG_OF) && mtd->dev.of_node)
> >> +		of_property_read_string(mtd->dev.of_node, "label", &mtd->name);
> >> +  
> > 
> > I realize this kind of thing would be better placed in mtd_set_of_node()
> > (see the patch below). Modifying the mtd->name pointer in the back of
> > MTD drivers is not such a good idea (suppose the driver allocated the
> > memory with a regular kmalloc() and tries to free mtd->name in the remove
> > path).
> > 
> > If we move that to mtd_set_of_node(), drivers that wants to support this
> > label property just have to check if mtd->name is NULL (after calling
> > mtd_set_of_node() or nand_set_flash_node()) before assigning a default
> > name.
> > For unmodified drivers we keep the existing behavior: they'll just
> > unconditionally override mtd->name with their own value (which might or
> > might not be dynamically allocated).  
> 
> ok. So the expected behavior looks correct to me, but adding a call to 
> of_property_read_string() in the inline below feels a little hacky. 
> Doesn't it ? 
> 
> May be we need an extra check on IS_ENABLED(CONFIG_OF) also ? 

This is all safe, because the of.h header defines stubs if CONFIG_OF is
not set. That just means the name will be unchanged, but you shouldn't
have any problem (neither as compilation time nor at runtime).

WARNING: multiple messages have this Message-ID (diff)
From: Boris Brezillon <boris.brezillon@free-electrons.com>
To: "Cédric Le Goater" <clg@kaod.org>
Cc: Mark Rutland <mark.rutland@arm.com>,
	devicetree@vger.kernel.org, Richard Weinberger <richard@nod.at>,
	Marek Vasut <marek.vasut@gmail.com>,
	Rob Herring <robh+dt@kernel.org>,
	linux-mtd@lists.infradead.org,
	Cyrille Pitchen <cyrille.pitchen@atmel.com>,
	Brian Norris <computersforpeace@gmail.com>,
	David Woodhouse <dwmw2@infradead.org>
Subject: Re: [PATCH 1/3] mtd: name the mtd device with an optional label property
Date: Wed, 25 Jan 2017 17:51:05 +0100	[thread overview]
Message-ID: <20170125175105.67c335e7@bbrezillon> (raw)
In-Reply-To: <7bdf47c3-d3b7-92a2-47c1-99e4bd6b4f44@kaod.org>

On Wed, 25 Jan 2017 17:47:13 +0100
Cédric Le Goater <clg@kaod.org> wrote:

> On 01/24/2017 03:13 PM, Boris Brezillon wrote:
> > Hi Cédric,
> > 
> > On Mon, 16 Jan 2017 14:27:03 +0100
> > Cédric Le Goater <clg@kaod.org> wrote:
> >   
> >> This can be used to easily identify a specific chip on a system with
> >> multiple chips.
> >>
> >> Suggested-by: Boris Brezillon <boris.brezillon@free-electrons.com>
> >> Signed-off-by: Cédric Le Goater <clg@kaod.org>
> >> ---
> >>  drivers/mtd/mtdcore.c | 7 +++++++
> >>  1 file changed, 7 insertions(+)
> >>
> >> diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c
> >> index 052772f7caef..bf61557b599d 100644
> >> --- a/drivers/mtd/mtdcore.c
> >> +++ b/drivers/mtd/mtdcore.c
> >> @@ -654,6 +654,13 @@ static int mtd_add_device_partitions(struct mtd_info *mtd,
> >>   */
> >>  static void mtd_set_dev_defaults(struct mtd_info *mtd)
> >>  {
> >> +	/*
> >> +	 * If DT support is enabled and we have a valid of_node pointer, try to
> >> +	 * extract the MTD name from the label property.
> >> +	 */
> >> +	if (IS_ENABLED(CONFIG_OF) && mtd->dev.of_node)
> >> +		of_property_read_string(mtd->dev.of_node, "label", &mtd->name);
> >> +  
> > 
> > I realize this kind of thing would be better placed in mtd_set_of_node()
> > (see the patch below). Modifying the mtd->name pointer in the back of
> > MTD drivers is not such a good idea (suppose the driver allocated the
> > memory with a regular kmalloc() and tries to free mtd->name in the remove
> > path).
> > 
> > If we move that to mtd_set_of_node(), drivers that wants to support this
> > label property just have to check if mtd->name is NULL (after calling
> > mtd_set_of_node() or nand_set_flash_node()) before assigning a default
> > name.
> > For unmodified drivers we keep the existing behavior: they'll just
> > unconditionally override mtd->name with their own value (which might or
> > might not be dynamically allocated).  
> 
> ok. So the expected behavior looks correct to me, but adding a call to 
> of_property_read_string() in the inline below feels a little hacky. 
> Doesn't it ? 
> 
> May be we need an extra check on IS_ENABLED(CONFIG_OF) also ? 

This is all safe, because the of.h header defines stubs if CONFIG_OF is
not set. That just means the name will be unchanged, but you shouldn't
have any problem (neither as compilation time nor at runtime).

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

  reply	other threads:[~2017-01-25 16:51 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-16 13:27 [PATCH 0/3] Add a "label" property to the mtd device Cédric Le Goater
2017-01-16 13:27 ` Cédric Le Goater
2017-01-16 13:27 ` [PATCH 1/3] mtd: name the mtd device with an optional label property Cédric Le Goater
2017-01-16 13:27   ` Cédric Le Goater
2017-01-16 13:32   ` Boris Brezillon
2017-01-16 13:32     ` Boris Brezillon
2017-01-24 14:13   ` Boris Brezillon
2017-01-24 14:13     ` Boris Brezillon
2017-01-24 14:27     ` Boris Brezillon
2017-01-24 14:27       ` Boris Brezillon
2017-01-25 16:47     ` Cédric Le Goater
2017-01-25 16:47       ` Cédric Le Goater
2017-01-25 16:51       ` Boris Brezillon [this message]
2017-01-25 16:51         ` Boris Brezillon
2017-01-25 16:53         ` Cédric Le Goater
2017-01-25 16:53           ` Cédric Le Goater
2017-01-16 13:27 ` [PATCH 2/3] dt-bindings: mtd: add a common label property to all mtd devices Cédric Le Goater
2017-01-16 13:27   ` Cédric Le Goater
2017-01-16 13:52   ` Boris Brezillon
2017-01-16 13:52     ` Boris Brezillon
2017-01-16 14:39     ` Cédric Le Goater
2017-01-16 14:39       ` Cédric Le Goater
2017-01-16 14:56   ` [PATCH v2 " Cédric Le Goater
2017-01-16 14:56     ` Cédric Le Goater
2017-01-19 16:42     ` Rob Herring
2017-01-19 16:42       ` Rob Herring
2017-01-16 13:27 ` [PATCH 3/3] mtd: spi-nor: add SPI_NOR_DUAL_READ to mx66l51235l Cédric Le Goater
2017-01-16 13:27   ` Cédric Le Goater
2017-01-16 16:15   ` Marek Vasut
2017-01-16 16:15     ` Marek Vasut
2017-01-16 16:39     ` Cédric Le Goater
2017-01-16 16:39       ` Cédric Le Goater
2017-01-17 18:19       ` Rob Lippert
2017-01-17 18:19         ` Rob Lippert

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170125175105.67c335e7@bbrezillon \
    --to=boris.brezillon@free-electrons.com \
    --cc=clg@kaod.org \
    --cc=computersforpeace@gmail.com \
    --cc=cyrille.pitchen@atmel.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dwmw2@infradead.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=marek.vasut@gmail.com \
    --cc=mark.rutland@arm.com \
    --cc=richard@nod.at \
    --cc=robh+dt@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.