um: vector: Fix an error handling path in 'vector_parse()'
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Sat, 27 Jan 2018 10:55:10 +0000 (11:55 +0100)
committerRichard Weinberger <richard@nod.at>
Mon, 19 Feb 2018 18:38:51 +0000 (19:38 +0100)
If 'find_device()' finds something, we set '*error_out' and we should
return an error. However, 'err' is known to be 0 at this point.

Explicitly return -EINVAL instead.

While at it, remove the initialization of 'err' at the beginning of the
function and also explicitly return an error code if the first check
fails.

Fixes: ad1f62ab2bd4 ("High Performance UML Vector Network Driver")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: Richard Weinberger <richard@nod.at>
arch/um/drivers/vector_kern.c

index 063c76b3a21527935d5ce0ca9a1da74cb5e71b61..4daa4fe18ad77a6eb6367b8f112cec7a0fc746f7 100644 (file)
@@ -677,7 +677,7 @@ static struct vector_device *find_device(int n)
 static int vector_parse(char *str, int *index_out, char **str_out,
                        char **error_out)
 {
-       int n, len, err = -EINVAL;
+       int n, len, err;
        char *start = str;
 
        len = strlen(str);
@@ -686,7 +686,7 @@ static int vector_parse(char *str, int *index_out, char **str_out,
                str++;
        if (*str != ':') {
                *error_out = "Expected ':' after device number";
-               return err;
+               return -EINVAL;
        }
        *str = '\0';
 
@@ -699,7 +699,7 @@ static int vector_parse(char *str, int *index_out, char **str_out,
        str++;
        if (find_device(n)) {
                *error_out = "Device already configured";
-               return err;
+               return -EINVAL;
        }
 
        *index_out = n;