Commit 060ed31d authored by Jiri Slaby's avatar Jiri Slaby Committed by Richard Weinberger

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 avatarRichard Weinberger <richard@nod.at>
parent 28a33cbc
...@@ -404,7 +404,7 @@ int line_open(struct line *lines, struct tty_struct *tty) ...@@ -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) ...@@ -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, ...@@ -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, ...@@ -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;
......
...@@ -32,9 +32,9 @@ struct line_driver { ...@@ -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;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment