/branches/gl-inet/target/linux/generic/pending-4.9/441-block2mtd_probe.patch |
@@ -0,0 +1,47 @@ |
From: Felix Fietkau <nbd@nbd.name> |
Subject: block2mtd |
|
Signed-off-by: Felix Fietkau <nbd@nbd.name> |
--- |
drivers/mtd/devices/block2mtd.c | 9 ++++++--- |
1 file changed, 6 insertions(+), 3 deletions(-) |
|
--- a/drivers/mtd/devices/block2mtd.c |
+++ b/drivers/mtd/devices/block2mtd.c |
@@ -392,7 +392,7 @@ static int block2mtd_setup2(const char * |
/* 80 for device, 12 for erase size, 80 for name, 8 for timeout */ |
char buf[80 + 12 + 80 + 8]; |
char *str = buf; |
- char *token[3]; |
+ char *token[4]; |
char *name; |
size_t erase_size = PAGE_SIZE; |
unsigned long timeout = MTD_DEFAULT_TIMEOUT; |
@@ -406,7 +406,7 @@ static int block2mtd_setup2(const char * |
strcpy(str, val); |
kill_final_newline(str); |
|
- for (i = 0; i < 3; i++) |
+ for (i = 0; i < 4; i++) |
token[i] = strsep(&str, ","); |
|
if (str) { |
@@ -435,6 +435,9 @@ static int block2mtd_setup2(const char * |
if (token[2] && (strlen(token[2]) + 1 > 80)) |
pr_err("mtd device name too long\n"); |
|
+ if (token[3] && kstrtoul(token[3], 0, &timeout)) |
+ pr_err("invalid timeout\n"); |
+ |
add_device(name, erase_size, token[2], timeout); |
|
return 0; |
@@ -469,7 +472,7 @@ static int block2mtd_setup(const char *v |
|
|
module_param_call(block2mtd, block2mtd_setup, NULL, NULL, 0200); |
-MODULE_PARM_DESC(block2mtd, "Device to use. \"block2mtd=<dev>[,<erasesize>[,<name>]]\""); |
+MODULE_PARM_DESC(block2mtd, "Device to use. \"block2mtd=<dev>[,<erasesize>[,<name>[,<timeout>]]]\""); |
|
static int __init block2mtd_init(void) |
{ |