Messages in this thread Patch in this message | | | From | Saurabh Sengar <> | Subject | [PATCH] mtd: phram: error handling | Date | Wed, 11 Nov 2015 00:57:55 +0530 |
| |
Expand parse_err macro with hidden flow in-place. Remove the now unused parse_err macro.
Miscellanea:
o Use invalid not illegal for error messages
Noticed-by: Brian Norris <computersforpeace@gmail.com> Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Saurabh Sengar <saurabh.truth@gmail.com> --- >> I think -EINVAL makes more sense than 1. That >> could be a subsequent patch, I suppose.
>That means you have to trace all the callers >to verify that converting 1 to -22 is acceptable.
>Maybe Saurabh wants to do that.
I have checked that function is called only by init and module param, and I understand in both the cases -EINVAL is a valid return type. Sorry, I am not able to test the driver, sending the patch as asked above. Also sorry for the noise I created in first report
drivers/mtd/devices/phram.c | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-)
diff --git a/drivers/mtd/devices/phram.c b/drivers/mtd/devices/phram.c index 8b66e52..e39fe5c 100644 --- a/drivers/mtd/devices/phram.c +++ b/drivers/mtd/devices/phram.c @@ -199,11 +199,6 @@ static inline void kill_final_newline(char *str) } -#define parse_err(fmt, args...) do { \ - pr_err(fmt , ## args); \ - return 1; \ -} while (0) - #ifndef MODULE static int phram_init_called; /* @@ -226,8 +221,10 @@ static int phram_setup(const char *val) uint64_t len; int i, ret; - if (strnlen(val, sizeof(buf)) >= sizeof(buf)) - parse_err("parameter too long\n"); + if (strnlen(val, sizeof(buf)) >= sizeof(buf)) { + pr_err("parameter too long\n"); + return -EINVAL; + } strcpy(str, val); kill_final_newline(str); @@ -235,11 +232,15 @@ static int phram_setup(const char *val) for (i = 0; i < 3; i++) token[i] = strsep(&str, ","); - if (str) - parse_err("too many arguments\n"); + if (str) { + pr_err("too many arguments\n"); + return -EINVAL; + } - if (!token[2]) - parse_err("not enough arguments\n"); + if (!token[2]) { + pr_err("not enough arguments\n"); + return -EINVAL; + } ret = parse_name(&name, token[0]); if (ret) @@ -248,13 +249,15 @@ static int phram_setup(const char *val) ret = parse_num64(&start, token[1]); if (ret) { kfree(name); - parse_err("illegal start address\n"); + pr_err("invalid start address\n"); + return -EINVAL; } ret = parse_num64(&len, token[2]); if (ret) { kfree(name); - parse_err("illegal device length\n"); + pr_err("invalid device length\n"); + return -EINVAL; } ret = register_device(name, start, len); -- 1.9.1
| |