[PATCH 2/5] mtd: Support for 4GB partitions

Dmitry Lavnikevich d.lavnikevich at sam-solutions.net
Fri Mar 7 06:14:55 EST 2014


This patch implements correct way of creating partitions on mtd
devices with size >= 4GB.

Signed-off-by: Dmitry Lavnikevich <d.lavnikevich at sam-solutions.com>
Signed-off-by: Grigory Milev <g.milev at sam-solutions.com>
---
  commands/partition.c    | 4 ++--
  drivers/mtd/partition.c | 4 ++--
  include/linux/mtd/mtd.h | 4 ++--
  3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/commands/partition.c b/commands/partition.c
index f825722..44b91d1 100644
--- a/commands/partition.c
+++ b/commands/partition.c
@@ -59,11 +59,11 @@ static int mtd_part_do_parse_one(char *devname, 
const char *partstr,
  		size = SIZE_REMAINING;
  		end = (char *)partstr + 1;
  	} else {
-		size = strtoul_suffix(partstr, &end, 0);
+		size = strtoull_suffix(partstr, &end, 0);
  	}
   	if (*end == '@')
-		*offset = strtoul_suffix(end+1, &end, 0);
+		*offset = strtoull_suffix(end+1, &end, 0);
   	if (size == SIZE_REMAINING)
  		size = devsize - *offset;
diff --git a/drivers/mtd/partition.c b/drivers/mtd/partition.c
index 85f486d..1b8d36e 100644
--- a/drivers/mtd/partition.c
+++ b/drivers/mtd/partition.c
@@ -90,8 +90,8 @@ static int mtd_part_block_markbad(struct mtd_info 
*mtd, loff_t ofs)
  	return res;
  }
  -struct mtd_info *mtd_add_partition(struct mtd_info *mtd, off_t 
offset, size_t size,
-		unsigned long flags, const char *name)
+struct mtd_info *mtd_add_partition(struct mtd_info *mtd, off_t offset,
+		uint64_t size, unsigned long flags, const char *name)
  {
  	struct mtd_part *slave;
  	struct mtd_info *slave_mtd;
diff --git a/include/linux/mtd/mtd.h b/include/linux/mtd/mtd.h
index d337455..165bc88 100644
--- a/include/linux/mtd/mtd.h
+++ b/include/linux/mtd/mtd.h
@@ -277,8 +277,8 @@ struct mtd_notifier {
  	struct list_head list;
  };
  -struct mtd_info *mtd_add_partition(struct mtd_info *mtd, off_t 
offset, size_t size,
-		unsigned long flags, const char *name);
+struct mtd_info *mtd_add_partition(struct mtd_info *mtd, off_t offset,
+		uint64_t size, unsigned long flags, const char *name);
  void mtd_del_partition(struct mtd_info *mtd);
   extern void register_mtd_user (struct mtd_notifier *new);
-- 
1.8.5.1




More information about the barebox mailing list