Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ee485070 authored by Al Viro's avatar Al Viro Committed by Richard Weinberger
Browse files

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: default avatarAl Viro <viro@zeniv.linux.org.uk>
Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
parent c8e2876f
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -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;
}
+1 −0
Original line number Diff line number Diff line
@@ -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;