From 892d4617357db355bf847ca37dd76cf946727ec2 Mon Sep 17 00:00:00 2001 From: Martin Kaistra Date: Mon, 13 Jul 2020 14:40:02 +0200 Subject: [PATCH] mtd: mtdpart: use uint64_t instead of int for cur_off 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 Reviewed-by: Heiko Schocher --- 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 d1f6029b2b..d064ac3048 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; -- 2.39.5