• Sven Eckelmann's avatar
    mtd: parser: cmdline: Fix parsing of part-names with colons · 639a8243
    Sven Eckelmann authored
    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: eb13fa02 ("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: default avatarSven Eckelmann <sven@narfation.org>
    Signed-off-by: default avatarMiquel Raynal <miquel.raynal@bootlin.com>
    Link: https://lore.kernel.org/linux-mtd/20201124062506.185392-1-sven@narfation.org
    639a8243
cmdlinepart.c 10.9 KB