From ee4850702bd6980c7baeb6a45142d55744a109a2 Mon Sep 17 00:00:00 2001 From: Al Viro Date: Thu, 8 Sep 2011 07:07:26 -0400 Subject: [PATCH] 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 Signed-off-by: Richard Weinberger --- arch/um/drivers/chan_kern.c | 4 ++++ arch/um/drivers/line.h | 1 + 2 files changed, 5 insertions(+) diff --git a/arch/um/drivers/chan_kern.c b/arch/um/drivers/chan_kern.c index 3a95498155a..390920d63a2 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; } diff --git a/arch/um/drivers/line.h b/arch/um/drivers/line.h index 95991994a93..6cb05a22e9b 100644 --- a/arch/um/drivers/line.h +++ b/arch/um/drivers/line.h @@ -39,6 +39,7 @@ struct line { char *init_str; struct list_head chan_list; + struct chan *chan_in, *chan_out; /*This lock is actually, mostly, local to*/ spinlock_t lock; -- 2.46.0