2006-01-03 23:48:28

by Jeff Dike

[permalink] [raw]
Subject: [PATCH 8/12] 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 <[email protected]>

Index: linux-2.6.15/arch/um/drivers/line.c
===================================================================
--- linux-2.6.15.orig/arch/um/drivers/line.c 2006-01-03 17:29:31.000000000 -0500
+++ linux-2.6.15/arch/um/drivers/line.c 2006-01-03 17:32:25.000000000 -0500
@@ -555,12 +555,13 @@ int line_setup(struct line *lines, unsig
}
}
}
- 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, unsi
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 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,