[Skiboot] [PATCH] arch_flash_arm: Don't assume mtd labels are short
Patrick Williams
patrick at stwcx.xyz
Thu Nov 17 11:49:16 AEDT 2016
Patrick
Sent from my iPhone
> On Nov 15, 2016, at 9:15 PM, Joel Stanley <joel at jms.id.au> 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>
> ---
> 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];
Isn't there a max path length define in a system header we could use instead?
>
> if (access != BMC_MTD && access != PNOR_MTD)
> return NULL;
> --
> 2.10.2
>
> _______________________________________________
> Skiboot mailing list
> Skiboot at lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/skiboot
More information about the Skiboot
mailing list