diff options
| author | Al Viro <viro@zeniv.linux.org.uk> | 2011-09-08 07:07:26 -0400 | 
|---|---|---|
| committer | Richard Weinberger <richard@nod.at> | 2012-03-25 00:29:54 +0100 | 
| commit | ee4850702bd6980c7baeb6a45142d55744a109a2 (patch) | |
| tree | a0db87b08c0e2790a069f7e2891f798259d0c47e | |
| parent | c8e2876fc8adaf9539f051fcda5d551308e8a0f8 (diff) | |
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>
| -rw-r--r-- | arch/um/drivers/chan_kern.c | 4 | ||||
| -rw-r--r-- | arch/um/drivers/line.h | 1 | 
2 files changed, 5 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;  } diff --git a/arch/um/drivers/line.h b/arch/um/drivers/line.h index 95991994a93b..6cb05a22e9b0 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; | 
