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)
committerRISCi_ATOM <bob@bobcall.me>
Fri, 27 Nov 2020 19:36:29 +0000 (14:36 -0500)
commit57716778ffabf8bee460e7d62444ddf7e4a2ce35
tree1dba8b4d26d979a69e25899645c80b3dc2e304d3
parent0de81c1c62e69379d392a5280a3b906dc87033d4
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]