linux/drivers/mtd/parsers
Sven Eckelmann 639a82434f mtd: parser: cmdline: Fix parsing of part-names with colons
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.

Fixes: eb13fa0227 ("mtd: parser: cmdline: Support MTD names containing one or more colons")
Cc: stable@vger.kernel.org
Cc: Ron Minnich <rminnich@google.com>
Signed-off-by: Sven Eckelmann <sven@narfation.org>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20201124062506.185392-1-sven@narfation.org
2020-12-07 12:14:32 +01:00
..
Kconfig mtd: parsers: bcm63xx: Do not make it modular 2020-10-02 09:09:08 +02:00
Makefile mtd: parsers: Move CMDLINE parser 2019-09-15 23:50:50 +02:00
afs.c treewide: Remove uninitialized_var() usage 2020-07-16 12:35:15 -07:00
ar7part.c mtd: parsers: Move TI AR7 parser 2019-09-15 23:50:48 +02:00
bcm47xxpart.c mtd: parsers: Move BCM47xx parser 2019-09-15 23:50:48 +02:00
bcm63xxpart.c mtd: parsers: bcm63xx: simplify CFE detection 2020-06-26 08:35:10 +02:00
cmdlinepart.c mtd: parser: cmdline: Fix parsing of part-names with colons 2020-12-07 12:14:32 +01:00
ofpart.c mtd: partitions: ofpart: Parse the slc-mode property 2020-05-11 09:51:42 +02:00
parser_imagetag.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
parser_trx.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
redboot.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 102 2019-05-24 17:39:00 +02:00
sharpslpart.c mtd: sharpslpart: Fix unsigned comparison to zero 2020-01-21 20:00:34 +01:00