Browse Source

[MTD] Fix commandline parser alignement

Add alignment to cmdline.

From: "Timofei V. Bondarenko" <tim@ipi.ac.ru>
Signed-off-by: Joern Engel <joern@wohnheim.fh-wedel.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Joern Engel 20 years ago
parent
commit
be76c5fb40
1 changed files with 6 additions and 2 deletions
  1. 6 2
      drivers/mtd/cmdlinepart.c

+ 6 - 2
drivers/mtd/cmdlinepart.c

@@ -1,5 +1,5 @@
 /*
 /*
- * $Id: cmdlinepart.c,v 1.17 2004/11/26 11:18:47 lavinen Exp $
+ * $Id: cmdlinepart.c,v 1.18 2005/06/07 15:04:26 joern Exp $
  *
  *
  * Read flash partition table from command line
  * Read flash partition table from command line
  *
  *
@@ -239,7 +239,8 @@ static int mtdpart_setup_real(char *s)
 				&num_parts,	/* out: number of parts */
 				&num_parts,	/* out: number of parts */
 				0,		/* first partition */
 				0,		/* first partition */
 				(unsigned char**)&this_mtd, /* out: extra mem */
 				(unsigned char**)&this_mtd, /* out: extra mem */
-				mtd_id_len + 1 + sizeof(*this_mtd));
+				mtd_id_len + 1 + sizeof(*this_mtd) + 
+				sizeof(void*)-1 /*alignment*/);
 		if(!parts)
 		if(!parts)
 		{
 		{
 			/*
 			/*
@@ -252,6 +253,9 @@ static int mtdpart_setup_real(char *s)
 			 return 0;
 			 return 0;
 		 }
 		 }
 
 
+		/* align this_mtd */
+		this_mtd = (struct cmdline_mtd_partition *) 
+			ALIGN((unsigned long)this_mtd, sizeof(void*));
 		/* enter results */	    
 		/* enter results */	    
 		this_mtd->parts = parts;
 		this_mtd->parts = parts;
 		this_mtd->num_parts = num_parts;
 		this_mtd->num_parts = num_parts;