[PATCH 3/5] ubi: Fix for creating ubi volumes with 64bit size

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


Since MTD is already supports >= 4GB device sizes it is better to
allow ubi valumes also be created of larger sizes.

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

diff --git a/commands/ubi.c b/commands/ubi.c
index 57ae790..8a409c2 100644
--- a/commands/ubi.c
+++ b/commands/ubi.c
@@ -15,12 +15,12 @@ static int do_ubimkvol(int argc, char *argv[])
  {
  	struct ubi_mkvol_req req;
  	int fd, ret;
-	size_t size;
+	uint64_t size;
   	if (argc != 4)
  		return COMMAND_ERROR_USAGE;
  -	size = strtoul_suffix(argv[3], NULL, 0);
+	size = strtoull_suffix(argv[3], NULL, 0);
  	req.name_len = min_t(int, strlen(argv[2]), UBI_VOL_NAME_MAX);
  	strncpy(req.name, argv[2], req.name_len);
  	req.name[req.name_len] = 0;
diff --git a/drivers/mtd/ubi/cdev.c b/drivers/mtd/ubi/cdev.c
index 129f2e2..b97739a 100644
--- a/drivers/mtd/ubi/cdev.c
+++ b/drivers/mtd/ubi/cdev.c
@@ -220,7 +220,7 @@ static int ubi_cdev_ioctl(struct cdev *cdev, int 
cmd, void *buf)
  		break;
  	case UBI_IOCMKVOL:
  		if (!req->bytes)
-			req->bytes = ubi->avail_pebs * ubi->leb_size;
+			req->bytes = (__s64)ubi->avail_pebs * ubi->leb_size;
  		return ubi_create_volume(ubi, req);
  	};
  -- 1.8.5.1




More information about the barebox mailing list