Patchwork [2/2] mtd: cmdlinepart: support master name is not set when parser partition

login
register
mail settings
Submitter Caizhiyong
Date Nov. 9, 2013, 11:43 a.m.
Message ID <C3050A4DBA34F345975765E43127F10F1C08B3EA@szxeml512-mbs.china.huawei.com>
Download mbox | patch
Permalink /patch/289988/
State New
Headers show

Comments

Caizhiyong - Nov. 9, 2013, 11:43 a.m.
From: Cai Zhiyong <caizhiyong@huawei.com>
Date: Sat, 9 Nov 2013 17:54:12 +0800
Subject: [PATCH 2/2] mtd: cmdlinepart: support master name is not set when parser partition

 -Fix compile warning with value and function undeclared.
  this reported by <fengguang.wu@intel.com> and
  Randy Dunlap <rdunlap@infradead.org>

 -support master name is not set when parser partition.
  this feature is supported in the old parser.

Signed-off-by: Cai Zhiyong <caizhiyong@huawei.com>
---
 drivers/mtd/Kconfig       |  1 +
 drivers/mtd/cmdlinepart.c | 10 ++++++++--
 2 files changed, 9 insertions(+), 2 deletions(-)
Ezequiel Garcia - Nov. 10, 2013, 6:09 p.m.
On Sun, Nov 10, 2013 at 10:06:59PM -0500, Huang Shijie wrote:
> On Sat, Nov 09, 2013 at 11:43:06AM +0000, Caizhiyong wrote:
> > From: Cai Zhiyong <caizhiyong@huawei.com>
> > Date: Sat, 9 Nov 2013 17:54:12 +0800
> >  
> > @@ -143,5 +149,5 @@ MODULE_PARM_DESC(mtdparts, "Partitioning specification");
> >  module_param(mtdparts, charp, 0);
> >  
> >  MODULE_LICENSE("GPL");
> > -MODULE_AUTHOR("Marius Groeger <mag@sysgo.de>");
> > +MODULE_AUTHOR("Cai Zhiyong <caizhiyong@huawei.com>");
> I tested this patch with several cases, it is ok.
> 

Can you summarize such cases? Or maybe better, just share them all :)
Huang Shijie - Nov. 11, 2013, 3:06 a.m.
On Sat, Nov 09, 2013 at 11:43:06AM +0000, Caizhiyong wrote:
> From: Cai Zhiyong <caizhiyong@huawei.com>
> Date: Sat, 9 Nov 2013 17:54:12 +0800
>  
> @@ -143,5 +149,5 @@ MODULE_PARM_DESC(mtdparts, "Partitioning specification");
>  module_param(mtdparts, charp, 0);
>  
>  MODULE_LICENSE("GPL");
> -MODULE_AUTHOR("Marius Groeger <mag@sysgo.de>");
> +MODULE_AUTHOR("Cai Zhiyong <caizhiyong@huawei.com>");
I tested this patch with several cases, it is ok.

But is it neccessary to change the author line?

thanks
Huang Shijie
Caizhiyong - Nov. 11, 2013, 3:08 a.m.
> On Sat, Nov 09, 2013 at 11:43:06AM +0000, Caizhiyong wrote:
> > From: Cai Zhiyong <caizhiyong@huawei.com>
> > Date: Sat, 9 Nov 2013 17:54:12 +0800
> >
> > @@ -143,5 +149,5 @@ MODULE_PARM_DESC(mtdparts, "Partitioning specification");
> >  module_param(mtdparts, charp, 0);
> >
> >  MODULE_LICENSE("GPL");
> > -MODULE_AUTHOR("Marius Groeger <mag@sysgo.de>");
> > +MODULE_AUTHOR("Cai Zhiyong <caizhiyong@huawei.com>");
> I tested this patch with several cases, it is ok.

Thank you for test.

> 
> But is it neccessary to change the author line?

I rewrite this module, there may be some bugs or other problems, if I keep the original author,
I am afraid that someone care about this.

> 
> thanks
> Huang Shijie
Huang Shijie - Nov. 13, 2013, 3:03 a.m.
On Sun, Nov 10, 2013 at 03:09:02PM -0300, Ezequiel Garcia wrote:
> 
> Can you summarize such cases? Or maybe better, just share them all :)
I just test it with cases such as(my nand is just 1G):
   (1) mtdparts=gpmi-nand:16m(boot),16m(kernel),600m(dtb),600m(ok),-(rootfs)
   (2) mtdparts=gpmi-nand:16m(boot),16m(kernel),600m(ok),-(rootfs)
   (3) mtdparts=gpmi-nand:16m(boot),16m(kernel),600m(dtb),600m(ok),600m(ok2),-(rootfs)

thanks
Huang Shijie

Patch

diff --git a/drivers/mtd/Kconfig b/drivers/mtd/Kconfig
index daf544a..f8f45e0 100644
--- a/drivers/mtd/Kconfig
+++ b/drivers/mtd/Kconfig
@@ -76,6 +76,7 @@  endif # MTD_REDBOOT_PARTS
 config MTD_CMDLINE_PARTS
 	tristate "Command line partition table parsing"
 	select BLK_CMDLINE_PARSER
+	depends on BLOCK
 	depends on MTD
 	---help---
 	  Allow generic configuration of the MTD partition tables via the kernel
diff --git a/drivers/mtd/cmdlinepart.c b/drivers/mtd/cmdlinepart.c
index ba934a4..2074164 100644
--- a/drivers/mtd/cmdlinepart.c
+++ b/drivers/mtd/cmdlinepart.c
@@ -54,6 +54,7 @@ 
   */
 
 #include <linux/kernel.h>
+#include <linux/slab.h>
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/partitions.h>
 #include <linux/module.h>
@@ -108,7 +109,12 @@  static int parse_cmdline_partitions(struct mtd_info *master,
 	if (!mtd_cmdline_parts)
 		return 0;
 
-	parts = cmdline_parts_find(mtd_cmdline_parts, master->name);
+	/* If master->name is not set, return the first device partition. */
+	if (!master->name)
+		parts = mtd_cmdline_parts->next_parts;
+	else
+		parts = cmdline_parts_find(mtd_cmdline_parts, master->name);
+
 	if (!parts)
 		return 0;
 
@@ -143,5 +149,5 @@  MODULE_PARM_DESC(mtdparts, "Partitioning specification");
 module_param(mtdparts, charp, 0);
 
 MODULE_LICENSE("GPL");
-MODULE_AUTHOR("Marius Groeger <mag@sysgo.de>");
+MODULE_AUTHOR("Cai Zhiyong <caizhiyong@huawei.com>");
 MODULE_DESCRIPTION("Command line configuration of MTD partitions");