Commit fe9a6b00 authored by Al Viro's avatar Al Viro Committed by Richard Weinberger

um: switch line_config() to setup_one_line()

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
parent da645f3b
...@@ -572,22 +572,32 @@ int line_config(struct line *lines, unsigned int num, char *str, ...@@ -572,22 +572,32 @@ int line_config(struct line *lines, unsigned int num, char *str,
{ {
struct line *line; struct line *line;
char *new; char *new;
int n; char *end;
int n, err;
if (*str == '=') { if (*str == '=') {
*error_out = "Can't configure all devices from mconsole"; *error_out = "Can't configure all devices from mconsole";
return -EINVAL; return -EINVAL;
} }
new = kstrdup(str, GFP_KERNEL); n = simple_strtoul(str, &end, 0);
if (*end++ != '=') {
*error_out = "Couldn't parse device number";
return -EINVAL;
}
if (n >= num) {
*error_out = "Device number out of range";
return -EINVAL;
}
new = kstrdup(end, GFP_KERNEL);
if (new == NULL) { if (new == NULL) {
*error_out = "Failed to allocate memory"; *error_out = "Failed to allocate memory";
return -ENOMEM; return -ENOMEM;
} }
n = line_setup(lines, num, new, error_out); err = setup_one_line(lines, n, new, INIT_ONE, error_out);
if (n < 0) if (err)
return n; return err;
line = &lines[n]; line = &lines[n];
return parse_chan_pair(line->init_str, line, n, opts, error_out); return parse_chan_pair(line->init_str, line, n, opts, error_out);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment