kernel: mtd: parser: cmdline: Fix parsing of part-names with colons openwrt-18.06
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 09:03:27 +0000 (10:03 +0100)
commit9f2a40c72fdb0b9b077bf5b4b01aa17eac4bfb45
tree4c63793d7e9c1d4f9342640205f8c6c86fd49f40
parent0e25552dd86c170b475033bc52ad073663397270
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: 5d01d0560893 ("kernel: Update kernel 4.14 to version 4.14.202")
Fixes: edda06c7b41d ("kernel: Update kernel 4.9 to version 4.9.240")
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]
target/linux/generic/pending-4.9/499-mtd-parser-cmdline-Fix-parsing-of-part-names-with-co.patch [new file with mode: 0644]