[PATCH] mtd: m25p80: Make the name of mtd_info fixed

B48286 at freescale.com B48286 at freescale.com
Thu Jan 23 14:29:41 EST 2014


Hi Brian,
Thanks for your comments!

> -----Original Message-----
> From: Brian Norris [mailto:computersforpeace at gmail.com]
> Sent: Thursday, January 23, 2014 10:12 AM
> To: Hou Zhiqiang-B48286
> Cc: linux-mtd at lists.infradead.org; linuxppc-dev at ozlabs.org; Wood Scott-
> B07421; Hu Mingkai-B21284; Ezequiel Garcia
> Subject: Re: [PATCH] mtd: m25p80: Make the name of mtd_info fixed
> 
> Hi Hou,
> 
> On Mon, Jan 06, 2014 at 02:34:29PM +0800, Hou Zhiqiang wrote:
> > To give spi flash layout using "mtdparts=..." in cmdline, we must give
> > mtd_info a fixed name,because the cmdlinepart's parser will match the
> > name given in cmdline with the mtd_info.
> >
> > Now, if use OF node, mtd_info's name will be spi->dev->name. It
> > consists of spi_master->bus_num, and the spi_master->bus_num maybe
> > dynamically fetched.
> > So, give the mtd_info a new fiexd name "name.cs", "name" is name of
> > spi_device_id and "cs" is chip-select in spi_dev.
> >
> > Signed-off-by: Hou Zhiqiang <b48286 at freescale.com>
> > ---
> >  drivers/mtd/devices/m25p80.c | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/mtd/devices/m25p80.c
> > b/drivers/mtd/devices/m25p80.c index eb558e8..d1ed480 100644
> > --- a/drivers/mtd/devices/m25p80.c
> > +++ b/drivers/mtd/devices/m25p80.c
> > @@ -1012,7 +1012,8 @@ static int m25p_probe(struct spi_device *spi)
> >  	if (data && data->name)
> >  		flash->mtd.name = data->name;
> >  	else
> > -		flash->mtd.name = dev_name(&spi->dev);
> > +		flash->mtd.name = kasprintf(GFP_KERNEL, "%s.%d",
> > +				id->name, spi->chip_select);
> 
> Changing the mtd.name may have far-reaching consequences for users who
> already have mtdparts= command lines. But your concern is probably valid
> for dynamically-determined bus numbers. Perhaps you can edit this patch
> to only change the name when the busnum is dynamically-allocated?
>
It's a good idea, but in the case of mtd_info's name dynamically-allocated
using "mtdparts=..." in command lines is illegal obviously. Would you tell
me what side-effect will be brought by the change of mtd_info's name.
Thanks 
 
> This also needs a NULL check (for OOM), and you leak memory on device
> removal.
> 
Yes, it's necessary to check the return value of function kasprintf.

> >
> >  	flash->mtd.type = MTD_NORFLASH;
> >  	flash->mtd.writesize = 1;
> 
> Brian
> 
Thanks,
Hou Zhiqiang


More information about the Linuxppc-dev mailing list