From patchwork Mon Jul 13 12:40:02 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Martin Kaistra X-Patchwork-Id: 241409 List-Id: U-Boot discussion From: martin.kaistra at linutronix.de (Martin Kaistra) Date: Mon, 13 Jul 2020 14:40:02 +0200 Subject: [PATCH] mtd: mtdpart: use uint64_t instead of int for cur_off Message-ID: <20200713124002.20882-1-martin.kaistra@linutronix.de> The types of "offset" and "size" of "struct mtd_partition" are uint64_t, while mtd_parse_partitions() uses int to work with these values. When the offset reaches 2GB, it is interpreted as a negative value, which leads to error messages like mtd: partition "" is out of reach -- disabled eg. when using the "ubi part" command. Fix this by using uint64_t for cur_off and cur_sz. Signed-off-by: Martin Kaistra Reviewed-by: Kurt Kanzenbach --- drivers/mtd/mtdpart.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/mtd/mtdpart.c b/drivers/mtd/mtdpart.c index d1f6029b2bf..d064ac30480 100644 --- a/drivers/mtd/mtdpart.c +++ b/drivers/mtd/mtdpart.c @@ -207,7 +207,7 @@ int mtd_parse_partitions(struct mtd_info *parent, const char **_mtdparts, { struct mtd_partition partition = {}, *parts; const char *mtdparts = *_mtdparts; - int cur_off = 0, cur_sz = 0; + uint64_t cur_off = 0, cur_sz = 0; int nparts = 0; int ret, idx; u64 sz;