Patchwork cmd line partitions: use 64 bit variables to detect partitions/offsets larger than 4G.

login
register
mail settings
Submitter Saeed Bishara
Date Sept. 7, 2010, 9:48 a.m.
Message ID <1283852918-9141-1-git-send-email-saeed@marvell.com>
Download mbox | patch
Permalink /patch/63976/
State New
Headers show

Comments

Saeed Bishara - Sept. 7, 2010, 9:48 a.m.
Signed-off-by: Saeed Bishara <saeed@marvell.com>
---
 drivers/mtd/cmdlinepart.c |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)
Artem Bityutskiy - Sept. 8, 2010, 8:31 a.m.
On Tue, 2010-09-07 at 12:48 +0300, Saeed Bishara wrote:
> Signed-off-by: Saeed Bishara <saeed@marvell.com>
> ---
>  drivers/mtd/cmdlinepart.c |   12 ++++++------
>  1 files changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/mtd/cmdlinepart.c b/drivers/mtd/cmdlinepart.c
> index 1479da6..80036d1 100644
> --- a/drivers/mtd/cmdlinepart.c
> +++ b/drivers/mtd/cmdlinepart.c
> @@ -41,8 +41,8 @@
>  
> 
>  /* special size referring to all the remaining space in a partition */
> -#define SIZE_REMAINING UINT_MAX
> -#define OFFSET_CONTINUOUS UINT_MAX
> +#define SIZE_REMAINING LLONG_MAX
> +#define OFFSET_CONTINUOUS LLONG_MAX

Should be ULLONG_MAX since you use unsigned long long and also offsets
in 'struct mtd_partition' uses uint64_t.

Patch

diff --git a/drivers/mtd/cmdlinepart.c b/drivers/mtd/cmdlinepart.c
index 1479da6..80036d1 100644
--- a/drivers/mtd/cmdlinepart.c
+++ b/drivers/mtd/cmdlinepart.c
@@ -41,8 +41,8 @@ 
 
 
 /* special size referring to all the remaining space in a partition */
-#define SIZE_REMAINING UINT_MAX
-#define OFFSET_CONTINUOUS UINT_MAX
+#define SIZE_REMAINING LLONG_MAX
+#define OFFSET_CONTINUOUS LLONG_MAX
 
 struct cmdline_mtd_partition {
 	struct cmdline_mtd_partition *next;
@@ -74,8 +74,8 @@  static struct mtd_partition * newpart(char *s,
                                       int extra_mem_size)
 {
 	struct mtd_partition *parts;
-	unsigned long size;
-	unsigned long offset = OFFSET_CONTINUOUS;
+	unsigned long long size;
+	unsigned long long offset = OFFSET_CONTINUOUS;
 	char *name;
 	int name_len;
 	unsigned char *extra_mem;
@@ -93,7 +93,7 @@  static struct mtd_partition * newpart(char *s,
 		size = memparse(s, &s);
 		if (size < PAGE_SIZE)
 		{
-			printk(KERN_ERR ERRP "partition size too small (%lx)\n", size);
+			printk(KERN_ERR ERRP "partition size too small (%llx)\n", size);
 			return NULL;
 		}
 	}
@@ -304,7 +304,7 @@  static int parse_cmdline_partitions(struct mtd_info *master,
                              struct mtd_partition **pparts,
                              unsigned long origin)
 {
-	unsigned long offset;
+	unsigned long long offset;
 	int i;
 	struct cmdline_mtd_partition *part;
 	const char *mtd_id = master->name;