[PATCH] mtd: parser: cmdline: Fix parsing of part-names with colons

Boris Brezillon boris.brezillon at collabora.com
Mon Nov 23 03:57:20 EST 2020


On Mon, 23 Nov 2020 09:38:14 +0100
Miquel Raynal <miquel.raynal at bootlin.com> wrote:

> Hi Sven,
> 
> Sven Eckelmann <sven at narfation.org> wrote on Sun, 22 Nov 2020 01:15:33
> +0100:
> 
> > Some devices (especially QCA ones) are already using hardcoded partition
> > names with colons in it. The OpenMesh A62 for example provides following
> > mtd relevant information via cmdline:
> > 
> >   root=31:11 mtdparts=spi0.0:256k(0:SBL1),128k(0:MIBIB),384k(0:QSEE),64k(0:CDT),64k(0:DDRPARAMS),64k(0:APPSBLENV),512k(0:APPSBL),64k(0:ART),64k(custom),64k(0:KEYS),0x002b0000(kernel),0x00c80000(rootfs),15552k(inactive) rootfsname=rootfs rootwait
> > 
> > The change to split only on the last colon between mtd-id and partitions
> > will cause newpart to see following string for the first partition:
> > 
> >   KEYS),0x002b0000(kernel),0x00c80000(rootfs),15552k(inactive)
> > 
> > Such a partition list cannot be parsed and thus the device fails to boot.
> > 
> > Avoid this behavior by making sure that the start of the first part-name
> > ("(") will also be the last byte the mtd-id split algorithm is using for
> > its colon search.  

Sounds reasonable to me. Note that it works until people start using
parens in their MTD name, so let's hope nobody does that :D. We should
really rework the mtdpart parsing code to make it more robust (do
context based parsing instead of this simple 'strchr()' solution).



More information about the linux-mtd mailing list