9
0
Fork 0

mtd: Support for 4GB partitions

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

Signed-off-by: Dmitry Lavnikevich <d.lavnikevich@sam-solutions.com>
Signed-off-by: Grigory Milev <g.milev@sam-solutions.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
Dmitry Lavnikevich 2014-03-10 14:39:50 +03:00 committed by Sascha Hauer
parent 1ee640765a
commit 76a88c0227
3 changed files with 6 additions and 6 deletions

View File

@ -59,11 +59,11 @@ static int mtd_part_do_parse_one(char *devname, const char *partstr,
size = SIZE_REMAINING; size = SIZE_REMAINING;
end = (char *)partstr + 1; end = (char *)partstr + 1;
} else { } else {
size = strtoul_suffix(partstr, &end, 0); size = strtoull_suffix(partstr, &end, 0);
} }
if (*end == '@') if (*end == '@')
*offset = strtoul_suffix(end+1, &end, 0); *offset = strtoull_suffix(end+1, &end, 0);
if (size == SIZE_REMAINING) if (size == SIZE_REMAINING)
size = devsize - *offset; size = devsize - *offset;

View File

@ -75,8 +75,8 @@ static int mtd_part_block_markbad(struct mtd_info *mtd, loff_t ofs)
return res; return res;
} }
struct mtd_info *mtd_add_partition(struct mtd_info *mtd, off_t offset, size_t size, struct mtd_info *mtd_add_partition(struct mtd_info *mtd, off_t offset,
unsigned long flags, const char *name) uint64_t size, unsigned long flags, const char *name)
{ {
struct mtd_info *part; struct mtd_info *part;
int start = 0, end = 0, i; int start = 0, end = 0, i;

View File

@ -280,8 +280,8 @@ struct mtd_notifier {
struct list_head list; struct list_head list;
}; };
struct mtd_info *mtd_add_partition(struct mtd_info *mtd, off_t offset, size_t size, struct mtd_info *mtd_add_partition(struct mtd_info *mtd, off_t offset,
unsigned long flags, const char *name); uint64_t size, unsigned long flags, const char *name);
int mtd_del_partition(struct mtd_info *mtd); int mtd_del_partition(struct mtd_info *mtd);
extern void register_mtd_user (struct mtd_notifier *new); extern void register_mtd_user (struct mtd_notifier *new);