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

Commit 042e6c29 authored by Jiri Slaby's avatar Jiri Slaby Committed by Greg Kroah-Hartman
Browse files

TTY: um/line, add tty_port



And use count from there.

Signed-off-by: default avatarJiri Slaby <jslaby@suse.cz>
Cc: Jeff Dike <jdike@addtoit.com>
Cc: Richard Weinberger <richard@nod.at>
Cc: user-mode-linux-devel@lists.sourceforge.net
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent c0e78650
Loading
Loading
Loading
Loading
+4 −3
Original line number Original line Diff line number Diff line
@@ -404,7 +404,7 @@ int line_open(struct line *lines, struct tty_struct *tty)
		goto out_unlock;
		goto out_unlock;


	err = 0;
	err = 0;
	if (line->count++)
	if (line->port.count++)
		goto out_unlock;
		goto out_unlock;


	BUG_ON(tty->driver_data);
	BUG_ON(tty->driver_data);
@@ -446,7 +446,7 @@ void line_close(struct tty_struct *tty, struct file * filp)
	mutex_lock(&line->count_lock);
	mutex_lock(&line->count_lock);
	BUG_ON(!line->valid);
	BUG_ON(!line->valid);


	if (--line->count)
	if (--line->port.count)
		goto out_unlock;
		goto out_unlock;


	line->tty = NULL;
	line->tty = NULL;
@@ -478,7 +478,7 @@ int setup_one_line(struct line *lines, int n, char *init,


	mutex_lock(&line->count_lock);
	mutex_lock(&line->count_lock);


	if (line->count) {
	if (line->port.count) {
		*error_out = "Device is already open";
		*error_out = "Device is already open";
		goto out;
		goto out;
	}
	}
@@ -663,6 +663,7 @@ int register_lines(struct line_driver *line_driver,
	driver->init_termios = tty_std_termios;
	driver->init_termios = tty_std_termios;
	
	
	for (i = 0; i < nlines; i++) {
	for (i = 0; i < nlines; i++) {
		tty_port_init(&lines[i].port);
		spin_lock_init(&lines[i].lock);
		spin_lock_init(&lines[i].lock);
		mutex_init(&lines[i].count_lock);
		mutex_init(&lines[i].count_lock);
		lines[i].driver = line_driver;
		lines[i].driver = line_driver;
+1 −1
Original line number Original line Diff line number Diff line
@@ -32,9 +32,9 @@ struct line_driver {
};
};


struct line {
struct line {
	struct tty_port port;
	struct tty_struct *tty;
	struct tty_struct *tty;
	struct mutex count_lock;
	struct mutex count_lock;
	unsigned long count;
	int valid;
	int valid;


	char *init_str;
	char *init_str;