From: Jeff Dike <jdike@addtoit.com>
Date: Fri, 6 Jan 2006 08:18:54 +0000 (-0800)
Subject: [PATCH] uml: line_setup interface change
X-Git-Tag: firefly_0821_release~39672^2~139
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=418e55d49b0ec7d2e7a033f2dd083f5b2ab7d119;p=firefly-linux-kernel-4.4.55.git

[PATCH] uml: line_setup interface change

line_setup is changed to return the device which it set up, rather than just
success or failure.  This will be important in the line-config patch.

Signed-off-by: Jeff Dike <jdike@addtoit.com>
Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
---

diff --git a/arch/um/drivers/line.c b/arch/um/drivers/line.c
index 1c2cc5d48bbb..1352a212964a 100644
--- a/arch/um/drivers/line.c
+++ b/arch/um/drivers/line.c
@@ -555,12 +555,13 @@ int line_setup(struct line *lines, unsigned int num, char *init)
 			}
 		}
 	}
-	return 1;
+	return n == -1 ? num : n;
 }
 
 int line_config(struct line *lines, unsigned int num, char *str)
 {
 	char *new;
+	int n;
 
 	if(*str == '='){
 		printk("line_config - can't configure all devices from "
@@ -573,7 +574,8 @@ int line_config(struct line *lines, unsigned int num, char *str)
 		printk("line_config - kstrdup failed\n");
 		return -ENOMEM;
 	}
-	return !line_setup(lines, num, new);
+	n = line_setup(lines, num, new);
+	return n < 0 ? n : 0;
 }
 
 int line_get_config(char *name, struct line *lines, unsigned int num, char *str,
@@ -624,10 +626,14 @@ int line_id(char **str, int *start_out, int *end_out)
 
 int line_remove(struct line *lines, unsigned int num, int n)
 {
+	int err;
 	char config[sizeof("conxxxx=none\0")];
 
 	sprintf(config, "%d=none", n);
-	return !line_setup(lines, num, config);
+	err = line_setup(lines, num, config);
+	if(err >= 0)
+		err = 0;
+	return err;
 }
 
 struct tty_driver *line_register_devfs(struct lines *set,