diff options
Diffstat (limited to 'target/linux/generic/patches-3.18/440-block2mtd_init.patch')
-rw-r--r-- | target/linux/generic/patches-3.18/440-block2mtd_init.patch | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/target/linux/generic/patches-3.18/440-block2mtd_init.patch b/target/linux/generic/patches-3.18/440-block2mtd_init.patch index a5819984bf..5ab60265a3 100644 --- a/target/linux/generic/patches-3.18/440-block2mtd_init.patch +++ b/target/linux/generic/patches-3.18/440-block2mtd_init.patch @@ -8,10 +8,10 @@ #include <linux/mutex.h> #include <linux/mount.h> #include <linux/slab.h> -@@ -210,11 +211,12 @@ static void block2mtd_free_device(struct +@@ -209,11 +210,12 @@ static void block2mtd_free_device(struct + } - /* FIXME: ensure that mtd->size % erase_size == 0 */ -static struct block2mtd_dev *add_device(char *devname, int erase_size) +static struct block2mtd_dev *add_device(char *devname, int erase_size, const char *mtdname) { @@ -22,7 +22,7 @@ char *name; if (!devname) -@@ -253,13 +255,16 @@ static struct block2mtd_dev *add_device( +@@ -257,13 +259,16 @@ static struct block2mtd_dev *add_device( /* Setup the MTD structure */ /* make the name contain the block device in */ @@ -31,7 +31,7 @@ + mtdname = devname; + name = kmalloc(strlen(mtdname) + 1, GFP_KERNEL); if (!name) - goto devinit_err; + goto err_destroy_mutex; + strcpy(name, mtdname); dev->mtd.name = name; @@ -41,7 +41,7 @@ dev->mtd.erasesize = erase_size; dev->mtd.writesize = 1; dev->mtd.writebufsize = PAGE_SIZE; -@@ -272,15 +277,18 @@ static struct block2mtd_dev *add_device( +@@ -276,15 +281,18 @@ static struct block2mtd_dev *add_device( dev->mtd.priv = dev; dev->mtd.owner = THIS_MODULE; @@ -52,7 +52,7 @@ + part->size = dev->mtd.size; + if (mtd_device_register(&dev->mtd, part, 1)) { /* Device didn't get added, so free the entry */ - goto devinit_err; + goto err_destroy_mutex; } list_add(&dev->list, &blkmtd_device_list); pr_info("mtd%d: [%s] erase_size = %dKiB [%d]\n", @@ -62,8 +62,8 @@ + mtdname, dev->mtd.erasesize >> 10, dev->mtd.erasesize); return dev; - devinit_err: -@@ -347,9 +355,9 @@ static char block2mtd_paramline[80 + 12] + err_destroy_mutex: +@@ -353,9 +361,9 @@ static char block2mtd_paramline[80 + 12] static int block2mtd_setup2(const char *val) { @@ -75,7 +75,7 @@ char *name; size_t erase_size = PAGE_SIZE; int i, ret; -@@ -362,7 +370,7 @@ static int block2mtd_setup2(const char * +@@ -368,7 +376,7 @@ static int block2mtd_setup2(const char * strcpy(str, val); kill_final_newline(str); @@ -84,7 +84,7 @@ token[i] = strsep(&str, ","); if (str) { -@@ -388,8 +396,10 @@ static int block2mtd_setup2(const char * +@@ -394,8 +402,10 @@ static int block2mtd_setup2(const char * return 0; } } @@ -96,7 +96,7 @@ return 0; } -@@ -423,7 +433,7 @@ static int block2mtd_setup(const char *v +@@ -429,7 +439,7 @@ static int block2mtd_setup(const char *v module_param_call(block2mtd, block2mtd_setup, NULL, NULL, 0200); |