kernel: mtd: parser: cmdline: Fix parsing of part-names with colons
authorSven Eckelmann <sven@narfation.org>
Sun, 22 Nov 2020 00:17:35 +0000 (01:17 +0100)
committerSven Eckelmann <sven@narfation.org>
Tue, 24 Nov 2020 08:48:48 +0000 (09:48 +0100)
commitb4698d87c8b39679b26a805b567b461341efd9ba
tree38c26b345967c67ab9cb222f9103d7950f4299a9
parent193adc94d135be9e24b72d7b4f4a629ebe24131c
kernel: 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: 9c718b5478ac ("kernel: bump 4.14 to 4.14.200")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
(backported from commit 223eec7e81f8506592fc89cf79a2f14360f5c57b)
target/linux/generic/pending-4.14/499-mtd-parser-cmdline-Fix-parsing-of-part-names-with-co.patch [new file with mode: 0644]