[Skiboot] [PATCH] arch_flash_arm: Don't assume mtd labels are short

Cyril Bur cyril.bur at au1.ibm.com
Fri Nov 18 09:05:14 AEDT 2016


On Wed, 2016-11-16 at 13:45 +1030, Joel Stanley wrote:
> pflash relies on arch_flash_arm parsing /proc/mtd to discover the
> pnor
> partition. It helpfully uses strcasestr so it can handle the string
> changing, which is what has happened as we moved to upstream
> compliant
> mtd device tree bindings.
> 
> We currently have a string like this:
> 
> dev:    size   erasesize  name
> mtd0: 00060000 00001000 "u-boot"
> mtd1: 00020000 00001000 "u-boot-env"
> mtd2: 00280000 00001000 "kernel"
> mtd3: 001c0000 00001000 "initramfs"
> mtd4: 01740000 00001000 "rofs"
> mtd5: 00400000 00001000 "rwfs"
> mtd6: 02000000 00001000 "1e620000.flash-controller:flash at 1"
> mtd7: 08000000 00001000 "1e630000.flash-controller:pnor at 0"
> 
> Unfortunately arch_flash_arm assumes the string will be at most 50
> characters. That's right before the label we're looking for starts so
> we ignore that line and keep searching.
> 
> Fix it by allowing for a 255 character line.
> 
> Fixes: 48ab7ce09504 (external/pflash: Add --mtd)
> Signed-off-by: Joel Stanley <joel at jms.id.au>

Reviewed-by: Cyril Bur <cyril.bur at au1.ibm.com>

> ---
>  external/common/arch_flash_arm.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/external/common/arch_flash_arm.c
> b/external/common/arch_flash_arm.c
> index bb8800ff556d..3cdd41ded0a9 100644
> --- a/external/common/arch_flash_arm.c
> +++ b/external/common/arch_flash_arm.c
> @@ -241,7 +241,7 @@ static char *get_dev_mtd(enum flash_access
> access)
>  {
>  	FILE *f;
>  	char *ret = NULL, *pos = NULL;
> -	char line[50];
> +	char line[255];
>  
>  	if (access != BMC_MTD && access != PNOR_MTD)
>  		return NULL;



More information about the Skiboot mailing list