diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2011-09-08 13:07:26 +0200 |
---|---|---|
committer | Richard Weinberger <richard@nod.at> | 2012-03-25 00:29:54 +0100 |
commit | ee4850702bd6980c7baeb6a45142d55744a109a2 (patch) | |
tree | a0db87b08c0e2790a069f7e2891f798259d0c47e /arch/um/drivers/chan_kern.c | |
parent | um: finally kill ->init_str leaks (diff) | |
download | linux-ee4850702bd6980c7baeb6a45142d55744a109a2.tar.xz linux-ee4850702bd6980c7baeb6a45142d55744a109a2.zip |
um: sorting out the chan mess, part 1
put references to in and out chans associated with line into
explicit struct chan * fields in it.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Richard Weinberger <richard@nod.at>
Diffstat (limited to 'arch/um/drivers/chan_kern.c')
-rw-r--r-- | arch/um/drivers/chan_kern.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/um/drivers/chan_kern.c b/arch/um/drivers/chan_kern.c index 3a95498155a1..390920d63a24 100644 --- a/arch/um/drivers/chan_kern.c +++ b/arch/um/drivers/chan_kern.c @@ -547,6 +547,7 @@ int parse_chan_pair(char *str, struct line *line, int device, char *in, *out; if (!list_empty(chans)) { + line->chan_in = line->chan_out = NULL; free_chan(chans); INIT_LIST_HEAD(chans); } @@ -565,6 +566,7 @@ int parse_chan_pair(char *str, struct line *line, int device, new->input = 1; list_add(&new->list, chans); + line->chan_in = new; new = parse_chan(line, out, device, opts, error_out); if (new == NULL) @@ -572,6 +574,7 @@ int parse_chan_pair(char *str, struct line *line, int device, list_add(&new->list, chans); new->output = 1; + line->chan_out = new; } else { new = parse_chan(line, str, device, opts, error_out); @@ -581,6 +584,7 @@ int parse_chan_pair(char *str, struct line *line, int device, list_add(&new->list, chans); new->input = 1; new->output = 1; + line->chan_in = line->chan_out = new; } return 0; } |