Skip to content

Commit

Permalink
um: sorting out the chan mess, part 1
Browse files Browse the repository at this point in the history
put references to in and out chans associated with line into
explicit struct chan * fields in it.

Signed-off-by: Al Viro <[email protected]>
Signed-off-by: Richard Weinberger <[email protected]>
  • Loading branch information
Al Viro authored and richardweinberger committed Mar 24, 2012
1 parent c8e2876 commit ee48507
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 0 deletions.
4 changes: 4 additions & 0 deletions arch/um/drivers/chan_kern.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand All @@ -565,13 +566,15 @@ 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)
return -1;

list_add(&new->list, chans);
new->output = 1;
line->chan_out = new;
}
else {
new = parse_chan(line, str, device, opts, error_out);
Expand All @@ -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;
}
Expand Down
1 change: 1 addition & 0 deletions arch/um/drivers/line.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down

0 comments on commit ee48507

Please sign in to comment.