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

Signed-off-by: Dmitry Lavnikevich <[email protected]>
Signed-off-by: Grigory Milev <[email protected]>
---
 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.9.0


_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to