summaryrefslogtreecommitdiffstats
path: root/meta-openbmc-machines/meta-openpower/common/recipes-bsp/skiboot/skiboot/0002-arch_flash_arm-Don-t-assume-mtd-partitions-are-short.patch
blob: d05659ad2998e99b0c308bda7e18a2bba1c2b074 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
From 112b4eebe614ebc384dbb7806ae8508474b44212 Mon Sep 17 00:00:00 2001
From: Joel Stanley <joel@jms.id.au>
Date: Wed, 16 Nov 2016 13:33:32 +1030
Subject: [PATCH] arch_flash_arm: Don't assume mtd labels are short
To: skiboot@lists.ozlabs.org,
    Cyril Bur <cyril.bur@au1.ibm.com>

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@1"
mtd7: 08000000 00001000 "1e630000.flash-controller:pnor@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@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];
 
 	if (access != BMC_MTD && access != PNOR_MTD)
 		return NULL;
-- 
2.10.2

OpenPOWER on IntegriCloud